MySQL索引的使用及注意事项
是存储引擎用于快速找到记录的一种数据结构。。索引能够轻易将查询性能提高几个数量级,"最优"的索引有时比一个"好的"索引性能要好两个数量级。 索引可以包含一个()或多个列()的值。 想要使用组合索引首先要了解一个原则:最。如果索引包含多个列,那么列的顺序十分重要,因为 。 最左前缀原则:比如我们创建一个(A,B,C)组合索引,也就相当与创建了(A),(A,B),(A,B,C)三个索引。 这里需要注意的一点是,。
上述语句也使用了索引,使用了(A,B)索引。
上述语句不能使用索引,不满足最左前缀原则。如果后面再加上 and A = '3' 则可以使用索引。 使用索引时需要注意的地方:
EXPLAIN 命令:
id:select 识别符,这是 select 查询序列号。 select_type:表示查询中 select 类型,简单或复杂。 table:显示这一行的数据是关于哪张表的。 type:连接类型, const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL。一般来说,得保证查询至少达到 range 级别,最好能达到 ref。如果值为 index,则说明 MySQL 使用了索引扫描来做排序。 possible_keys:指出 MySQL 能使用哪个索引在表中找到行,查询涉及到的字段上若存在索引,则该索引将被列出,但。 key:显示 MySQL 在查询中,若没有使用索引,显示为 NULL。 key_len:表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度。 ref:表示上述表的连接匹配条件,即哪些列或常量被用于查找索引列上的值。 rows:表示 MySQL 根据表统计信息及索引选用情况,估算的找到所需的记录所需要读取的行数。 Extra:包含不适合在其他列中显示但十分重要的额外信息。如 。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |