ACID 四个字母里,A、C、D 在工程上相对好验证:原子性靠日志回滚,持久性靠刷盘策略,一致性是业务与约束共同保证的结果。真正让人头疼的是 I——隔离性。它的定义本身就带着妥协:完全隔离等价于串行执行,性能不可接受;降低隔离又会引入各种读写异常。工程…
831
0
6
VectorQ 发布于 · 2026-10-19
欢迎你
7AA7 博客
注册提交后需管理员审核,通过后即可用你设置的密码登录。账号为 5 位以上英文字母 / 数字组合,邮箱用于找回密码。
7AA7 技术博客 · #MySQL 下的全部文章。
ACID 四个字母里,A、C、D 在工程上相对好验证:原子性靠日志回滚,持久性靠刷盘策略,一致性是业务与约束共同保证的结果。真正让人头疼的是 I——隔离性。它的定义本身就带着妥协:完全隔离等价于串行执行,性能不可接受;降低隔离又会引入各种读写异常。工程…
慢查询排查是个有固定套路的活:先从慢查询日志里找到嫌疑人,用 EXPLAIN 看它打算怎么执行,判断问题出在索引、写法还是表结构上,改完再验证。整条链路里,EXPLAIN 是承上启下的一步——它不能告诉你语句有多慢,但能告诉你为什么慢。这篇文章把这条链路的每…
索引是数据库性能问题里被讨论得最多、也最容易被误解的一层。很多线上慢查询的根因不是"没加索引",而是"加了索引但没用上",或者"用了索引但代价比想象中高"。想把索引用明白,得先理解它在磁盘和内存之间是怎么组织数据的,再回头看 SQL 语句里那些看似随…
线上服务响应变慢,第一反应往往是"连接池不够用,调大最大连接数"。调完可能确实缓解,也可能更慢,甚至把数据库拖垮。连接池的参数不是孤立的,它连接的是应用侧并发模型与数据库侧执行模型两端。理解两端的成本结构,才能知道连接数该定多少。 一条连接的…
给一张几百 GB 的表加个字段,开发以为是一行 SQL 的事,DBA 知道这可能是几小时的磁盘 IO 和一次业务抖动。搞清楚 DDL 背后的执行路径,才能判断一次变更到底需要多少资源、会不会阻塞业务。 DDL 为什么会锁表 原因有两类。 第一类:元数据锁(MDL)。任何…