MySQL中的覆盖索引是什么?
MySQL中的覆盖索引是什么
覆盖索引
二级索引:对表中其他字段 (非主键字段) 创建的额外索引
覆盖索引指二级索引中索引列包含了查询条件的字段的情况,这使得查询可以直接通过索引定位数据。
优点:
- 减少I/O操作:由于查询操作能通过索引定位数据完成,所以不需要从索引获得对应数据的指针,再到对应数据的存储位置查找,减少磁盘I/O操作
- 提高查询效率:索引比表数据更紧凑,直接读取索引比扫描表数据更快
- 减少内存占用:结合缓存池来说,如果目标索引页不在缓存池中,则加载索引页到缓存中,而此时没有索引覆盖,还需要到对应数据页查找,还需要加载对应数据页到缓存中。所以覆盖索引可以减少内存占用。
什么是回表
指查询条件不能完全匹配索引列,所以查询需要从索引中获取指向对应数据的指针 (一般是主键) ,再到目标数据的存储位置 (或者主键索引页) 中去查找,这种操作称为回表。
本文标题:MySQL中的覆盖索引是什么?
文章作者:Crowntit
发布时间:2025-05-23
最后更新:2025-05-23
版权声明:本文为原创文章,转载请附上原文出处链接。