前缀索引的计算保存最优长度的方式
作者:互联网
有时候需要索引很长的字符列(比如订单流水号之类的),这会让索引变得大且慢,通常可以用只保存字符串前缀的方式,减少索引的空间,但是这样做也是有代价的,如果保存的前缀重复性太高也就是可选择性太低的话,那么索引所需要过滤的行数也越多,相对地查询速度也就慢了。
比如下面这个表, 总共有6条重复的,前面7位数相等
SELECT count(DISTINCT left( `password`,1) )/count(*) FROM `ums_member`
通过这个算法截取前面1位进行计算的话得出来的选择性是
截取第8位计算,选择性就提高了,但是同时需要保存的长度也越长了,通常来说选择性越高需要保存的长度也越长,所以做前缀索引之前还是要充分考虑下之间的取舍了
建立前缀索引的命令
ALTER TABLE ums_member ADD KEY(password(8))
标签:前缀,ums,保存,索引,选择性,最优,password 来源: https://www.cnblogs.com/JoJo1021/p/16361026.html