什么是笼罩索引
创立一个索引,该索引蕴含查问中用到的所有字段,称为“笼罩索引”。
应用笼罩索引,MySQL 只须要通过索引就能够查找和返回查问所须要的数据,而不用在应用索引解决数据之后再进行回表操作。
笼罩索引能够一次性实现查问工作,无效缩小 IO,进步查问效率。
应用示例
查问语句:
SELECT col2, col3 FROM test_table WHERE col1 = xxx ORDER BY col2;
创立一个单列索引:
ALTER TABLE `test_table` ADD INDEX `idx_col1`(`col1`) USING BTREE;
剖析查问:
EXPLAIN SELECT SQL_NO_CACHE col2, col3 FROM test_table WHERE col1 = xxx ORDER BY col2;
后果:对 col1 建设索引后,type 为 ref,应用到了 idx_col1 索引。
批改索引,依据查问语句,建设一个联结索引:
ALTER TABLE `test_table` DROP INDEX `idx_col1`;
ALTER TABLE `test_table` ADD INDEX `idx_col1_col2_col3`(`col1`,`col2`,`col3`) USING BTREE;
剖析查问:
EXPLAIN SELECT SQL_NO_CACHE col2, col3 FROM test_table WHERE col1 = xxx ORDER BY col2;
后果:建设联结索引后,type 为 ref,应用了 idx_col1_col2_col3 索引,Extra 为 Using index,阐明应用了笼罩索引。