普通索引和唯一索引选择

查询过程

普通索引:查找满足条件的第一个记录后,接着查找下一个记录,直到查到第一个不满足条件的记录。

唯一索引:由于索引定义了唯一性,查找到第一个满足条件的记录后,就会停止继续检索。

更新过程

为了说明普通索引和唯一索引对更新语句性能的影响这个问题,先介绍一下change buffer

更新一个数据页时,这个数据页还没有在buffer pool时,InooDB会将这些更新操作缓存在change buffer中,下次查询需要访问这个数据页的时候,将数据页读入内存,然后执行change buffer中与这个页有关的操作
如果能够将更新操作先记录在change buffer,可以减少磁盘读写操作,语句(例如,具有大量DML操作的应用程序,例如批量插入)执行速度会得到明显的提升。而且,数据读入内存是需要占用buffer pool的,所以这种方式还能够避免占用内存,提高内存利用率



参考链接:https://dev.mysql.com/doc/refman/8.0/en/innodb-change-buffer.html

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容