四十三、【进阶】前缀索引

1、基础

        简单点说,前缀索引就是当索引字段类型较大时,有时候需要索引很长的字符串,查询时,会浪费更大的空间,此时可以只对该索引的一部分前缀建立索引,可以大大的节省空间。

        前缀索引一般配合选择度进行使用,选择度=(非重复元素的总数)/(该列元素的总数),选择度等于1时,代表该字段下无重复元素,选择度始终小于等于1。

四十三、【进阶】前缀索引_第1张图片

2、表结构

3、选择性实际操作

(1)选择性等于1:

        当截取前10个字符串时,无重复元素。

四十三、【进阶】前缀索引_第2张图片

(2)选择性小于1:

        当前缀选择前9个字符时,就会出现重复元素,那么它的选择就会小于1。

四十三、【进阶】前缀索引_第3张图片

(3)选择性:

        在业务系统中,选择性尽可能高,那么前缀数尽可能的高,如果想要平衡选择性与索引的体积,那么取5个前缀左右。

4、前缀索引建立案例

(1)选择前5个字符建立索引

        索引名称为:idx_email_5,通过截取email表的前五个字符,建立索引。

四十三、【进阶】前缀索引_第4张图片

(2) 查询索引

四十三、【进阶】前缀索引_第5张图片

(3)查询索引是否被使用

四十三、【进阶】前缀索引_第6张图片

5、 查询流程

四十三、【进阶】前缀索引_第7张图片

你可能感兴趣的:(MYSQL,数据库,数据结构,mysql,sql)