MySQL 的Change Buffer 是什么?它有什么作用?
- 是什么?
- Change Buffer是InnoDB存储引擎的一个机制。
- Change Buffer针对二级索引的插入和更新暂存,不立刻执行
- 随后在合适的条件,比如被读取和Flush操作,进行写入
- 作用?
- 延迟写入,减少随机I/O,减少磁盘读写频率,提高读写性能
- 批量处理,提高效率
- 为什么二级索引可以延迟更新,而主键索引和唯一索引不行
-
唯一性约束:
-
主键和唯一索引要求键值唯一,如果延迟更新,可能导致:
-
唯一性冲突无法及时检测(如并发插入相同值,内存中未合并的 Change Buffer 无法拦截冲突)。
-
破坏事务的 ACID 特性(如隔离性、一致性)。
-
-
-
数据依赖:
-
聚簇索引(主键索引)存储了完整行数据,其他索引(如二级索引)通常指向主键。如果主键未及时更新,可能导致二级索引引用失效。
-
-
1603

被折叠的 条评论
为什么被折叠?



