MySQL线上修改表结构:避免阻塞与停服风险
本文深入解析MySQL MDL元数据锁对表结构变更的影响,指出传统手动加锁同步数据会导致服务不可用。通过引入“双表并行+主从延迟同步”的改进方案,实现业务低干扰下的在线结构变更,确保高可用场景下的平滑升级。
本文深入解析MySQL MDL元数据锁对表结构变更的影响,指出传统手动加锁同步数据会导致服务不可用。通过引入“双表并行+主从延迟同步”的改进方案,实现业务低干扰下的在线结构变更,确保高可用场景下的平滑升级。

本文介绍在MySQL中利用分隔符拆分字符串的两种方法:一是直接使用内置函数 SUBSTRING_INDEX 获取指定位置的片段;二是通过 DELIMITER 定义存储过程,结合临时表与循环逻辑完成完整字符串拆解。适用于处理标签、ID列表等场景。
深入解析MySQL InnoDB缓冲池配置,涵盖innodb_buffer_pool_size与instances参数的合理设置方法。通过监控Innodb_buffer_pool_pages_data等状态变量,结合数据使用率公式动态调整内存分配,有效提升数据库I/O性能并降低磁盘读写开销。
文章深入剖析 MySQL 中 B-Tree 与 B+Tree 两种核心索引数据结构的原理与差异。从减少磁盘 I/O 的角度出发,解释了为何二叉树会演变为多叉树,并详细对比了两者在节点数据存储、查询稳定性及范围扫描效率上的不同。结论指出 B+Tree 因内部节点仅存储索引且叶子节点链表连接,更适合关系型数据库的索引实现。

本文深入解析MySQL中RC(读已提交)与RR(可重复读)隔离级别的差异,重点说明Gap Lock对并发与锁表的影响。通过实战演示两种隔离级别下非索引列更新导致的锁行为差异,并指出binlog格式配置建议,帮助开发者优化数据库事务性能。
本文详解MySQL中DELETE语句的语法执行顺序及WHERE、ORDER BY、LIMIT子句用法,涵盖单表删除与基于内/外连接的跨表删除实战。同时对比分析DELETE与TRUNCATE在事务机制下的性能差异,并提供DROP等常见误操作的排查指南,助力高效安全地管理数据库记录。

当MySQL执行计划未达预期时,仅靠Explain难以得知优化器决策细节。本文介绍如何通过开启optimizer_trace追踪优化器生成执行计划的完整过程,通过cost成本计算排查索引误选原因,帮助DBA精准定位SQL性能问题。

在MySQL数据库设计中,正确区分超键、候选键和主键至关重要。超键是能唯一标识元组的属性集;候选键是不含多余属性的最小超键;主键则是从候选键中选定的唯一标识列。理解这三者关系有助于优化表结构设计与数据完整性约束。

本文详细介绍MySQL中常用聚合函数的使用方法,包括求和(SUM)、最大值(MAX)、最小值(MIN)、平均值(AVG)及计数(COUNT)。通过员工表示例演示各函数在整表统计中的应用,重点解析COUNT(*)与COUNT(列名)的区别,并深入探讨为何聚合函数不能直接出现在WHERE子句中及其背后的执行顺序原理。

本文详述 Windows 环境下 MySQL 8.0.29 的手动安装步骤及完全卸载方法。涵盖从下载解压、配置环境变量、初始化 data 目录到启动服务并修改 root 密码的全过程,以及停止服务、清理注册表残留和删除 ProgramData 文件的卸载操作,确保用户能够干净地移除数据库软件。

本文深入解析 MySQL 中慢查询显示 commit 耗时却未在 binlog 日志中体现为慢事务的原因。通过剖析 QUERY_EVENT、XID_EVENT 及 GTID_LOG_EVENT 的时间戳定义,揭示两者判定逻辑的本质区别:慢事务记录从开始到主库刷盘完成,而慢查询中的 commit 慢涵盖后续的等待 ACK 及网络传输时间。结合实验数据,明确了锁等待、自动提交机制及半同步复制对两者的不同影响,帮助 DBA 精准定位性能瓶颈。
针对MySQL 5.7及以上版本默认开启ONLY_FULL_GROUP_BY导致的SELECT报错,本文提供通过修改配置文件移除该模式的方法。同时指出在Docker环境运行MySQL 8.0时,因NO_AUTO_CREATE_USER参数已废弃引发的启动失败问题,并给出修正后的sql_mode完整配置列表。
