前缀索引,一种优化索引大小的解决方案
有时候需要索引很长的字符列,这会让索引变得大且慢。
通常可以索引开始的部分字符,这样可以大大节约索引空间,从而提高索引效率。但这样也会降低索引的选择性。
1. 前缀索引的有点
前面已经说过,使用前缀索引,定义好长度,就可以做到既节省空间,又不用额外增加太多的查询成本。
2.前缀索引的缺点
2.1因为前缀索引无法完全等于判断,只是前缀匹配,所以可能需要扫描的所以数会增加
2.2在特殊的查询里面
select id,email from SUser where email='zhangssxyz@xxx.com';
前缀索引需要回到 id 索引再查一下,因为系统并不确定前缀索引的定义是否截断了完整信息
3. 确定前缀索引长度
select
count(distinct left(email,4))as L4,
count(distinct left(email,5))as L5,
count(distinct left(email,6))as L6,
count(distinct left(email,7))as L7,
from SUser
这里要根据不同情况确定能接受的损失比例
4. 其他索引方式
1. 倒序排列
2. hash