您现在的位置是:课程教程文章
mysql中什么是覆盖索引
2023-12-18 17:17课程教程文章 人已围观
-
Java基础到高级实战VIP课程(Spring/SpringMVC
Java基础到高级实战VIP课程(Spring/SpringMVC本课程包含:JavaSE、MySQL数据库、Web前端、AJAX+JSON、SSM框架 附赠项目案例(视频... -
GROMACS模拟基础之创建索引(选择任意基团
GROMACS模拟基础之创建索引(选择任意基团【版本】基于GROMACS2021.6 【课程简介-目录】 1、本次课程为大家讲解在GROMACS里面... -
【千锋】2021最新版Mysql数据库教程
【千锋】2021最新版Mysql数据库教程+扣扣:2377396117 免费领配套视频+资料+源码,也可来【千锋头号粉丝】公众号找... -
MySQL数据库基础到实战——48课时共9小时
MySQL数据库基础到实战——48课时共9小时课程详情 本课程以当前较流行的MySQL 8.0为平台,以“Java EE/MySQL高校教务管理系...
如果一个索引包含(或覆盖)所有需要查询的字段的值,称为‘覆盖索引’。
(推荐教程:MySQL教程)
覆盖索引是一种非常强大的工具,能大大提高查询性能,只需要读取索引而不需要读取数据,有以下优点:
1、索引项通常比记录要小,所以MySQL访问更少的数据。
2、索引都按值得大小存储,相对于随机访问记录,需要更少的I/O。
3、数据引擎能更好的缓存索引,比如MyISAM只缓存索引。
4、覆盖索引对InnoDB尤其有用,因为InnoDB使用聚集索引组织数据,如果二级索引包含查询所需的数据,就不再需要在聚集索引中查找了。
限制:
1、覆盖索引也并不适用于任意的索引类型,索引必须存储列的值。
2、Hash和full-text索引不存储值,因此MySQL只能使用BTree。
3、不同的存储引擎实现覆盖索引都是不同的,并不是所有的存储引擎都支持覆盖索引。
4、如果要使用覆盖索引,一定要注意SELECT列表值取出需要的列,不可以SELECT * ,因为如果将所有字段一起做索引会导致索引文件过大,查询性能下降。
课程教程:mysql中什么是覆盖索引下一篇:没有了