主键索引:会进行主键约束,并且是唯一索引,生成的索引是主键索引;
唯一索引:主键是特殊的唯一索引,但是唯一索引可以为空值,主键不允许为空,也是二级索引
普通索引:普通索引可以重复,是二级索引;
查询情况下:
- 普通索引:分两种情况,一种是查询的参数在页尾,这样匹配后还需要查询下一个是否满足条件;
- 唯一索引:直接匹配后就可以停止检索;
总结:查询的差异影响并不大
更新情况下:
更新:插入、删除、更新;
image.png
change buffer:innodb引擎的内存,从buffer pool获取,用与存取当前的更新变化,【减少磁盘io】;
应用场景:
- 普通索引且目标页不在内存时,使用change buffer进行临时存储,当访问更新的数据时、后台定时刷新时、数据库正常关闭时进行merge操作;
- 唯一索引的情况下并不起作用,因为存在唯一索引需要读取磁盘数据到内存,并判定唯一性,这样直接可以在内存修改,用不上change buffer;
- 对于历史库,使用机械硬盘的,写多读少的情况下可以起较大作用;
网友评论