这篇文章主要讲解了“mysql覆盖索引使用要注意什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql覆盖索引使用要注意什么”吧!
使用注意
1、索引必须存储列值。
覆盖索引不适用于所有索引类型。
2、MySQL只能使用B-TREE。
Hash和full-text索引没有存储值。
3、不同的存储引擎有不同的覆盖索引。
4、并不是所有的存储引擎都支持。
5、注意取出SELECT列表值所需的列。
如果要使用覆盖索引,一定要注意取出SELECT列表值所需的列,而不是SELECT*,因为如果把所有字段一起做索引,会导致索引文件过大,查询性能下降,不能用覆盖索引。
实例
#创建一张表 mysql> create table T ( ID int primary key, k int NOT NULL DEFAULT 0, s varchar(16) NOT NULL DEFAULT '', index k(k)) engine=InnoDB; #插入的数据 insert into T values(100,1, 'aa'),(200,2,'bb'),(300,3,'cc'),(500,5,'ee'),(600,6,'ff'),(700,7,'gg');