MySQL实战45讲 第九讲笔记

感觉越来越吃力了。感觉很难懂,图片没有完全理解

普通索引、唯一索引

change buffer

当需要更新一个数据页时,如果数据页在内存中就直接更新,而如果这个数据页还没有在
内存中的话,在不影响数据一致性的前提下,InooDB 会将这些更新操作缓存在 change
buffer 中,这样就不需要从磁盘中读入这个数据页了。

merge

将change buffer中的操作应用到原数据页,得到最新结果的过程称为merge。

触发时间分别在,被访问时、后台线程定期操作、数据库正常关闭时

redo log 与 change buffer

redo log保证不会丢失change buffer
redo log 主要节省的是随机写磁盘的 IO 消耗(转成顺序写),而 change buffer 主要节省的则是随机读磁盘的 IO 消耗
业务保证唯一性情况下选择普通索引

由于唯一索引用不上 change buffer 的优化机制,因此如果业务可以接受,从性能角度出发我建议你优先考虑非唯一索引。

你可能感兴趣的:(MySQL实战45讲 第九讲笔记)