MySQL优化之前缀索引的秘诀(mysql 前缀索引)

    前缀索引,又称前缀排序索引,是MySQL中可以极大提高查询效率的一种索引。在MySQL数据库中,有不同类型的索引,其中重要的就是前缀索引。它在MySQL中发挥着不可或缺的作用,尤其是有大量字符类列被查询的情况下,用前缀索引能显著提高查询效率。

    说明前缀索引的秘诀,首先要明白一个基本概念:一个索引键有三种类型――非前缀索引、前缀索引和完全前缀索引。非前缀索引是非典型的索引,利用各种数据类型存储,支持全文索引和空文本索引,它只使用索引键的全部有效字节。而前缀索引是按照一定规则索引,一般不用全部有效字节,而是根据规则取出索引键的一部分,只要是从索引的最左边的字节开始的几个字节,任意几个字节都可以索引,这样可以有效减少索引的建立和查询的时间。而完全前缀索引是指从索引中取出来的一串字节,称为一个完全前缀,可以和主键最小匹配,利用完全前缀索引可以较快地查找,同时也可以省掉本来用全键索引来查找时耗费更多磁盘空间存储索引。

    那么,MySQL中前缀索引的秘诀即使用前缀索引来优化查询,而在查询数据时,只要确定的一部分字段,从索引的最左边的字节开始,只要从索引中取出来的一串字节满足查询要求,就将这个字段拿出来。比如,下面的SQL语句:

“`sql

SELECT * FROM employee WHERE name like ‘Ann%’;


    索引字段是name,则可以在name上建立一个前缀索引,将LEN(name) = 3的索引拿出来,,即name以Ann开头的索引拿出来,从而优化查询。

    因此,MySQL优化之前缀索引的秘诀,就是利用字段前几个字节的部分进行查询,无论是从索引的全部有效字节、只取若干字节,还是将索引从最左边的字节开始的几个字节取出来,都可以有效减少索引的建立和查询的时间,提高查询效率。

数据运维技术 » MySQL优化之前缀索引的秘诀(mysql 前缀索引)