Mysql——前模糊索引失效原因及解决方式
目录
- 一、前模糊索引失效原因
- 二、前模糊索引失效解决方式
- 2.1、第一种解决方式
- 2.2、第二种解决方式
- 2.3、第三种解决方式
- 2.4、第四种解决方式
一、前模糊索引失效原因
- 首先我们的索引它是一个B+树,它会根据我们索引数据自动的进行排序,并且存储在叶子节点中,
由于第一个字不确定,它就没办法按照顺序去检索到你的索引页,从而就会进行全表扫描,导致性能非常低。
二、前模糊索引失效解决方式
2.1、第一种解决方式
-
通过反向索引的方式,也就是说将索引的数据在另外存一份反向的数据。
-
例如:name的值张三,存储成张三,那么这样你的查询语句就可以通过后模糊来进行查询,从而有效的利用上索引。
select t.* from t_user t where p.t_reverse_name like '三%'
2.2、第二种解决方式
-
通过限制范围的方式。
例如:当天、当月创建的数据进行全表扫描,给它限制一个范围,让它限制在这个范围内,性能也能够得到有效的提升。
2.3、第三种解决方式
- 在查询字段上使用索引覆盖,这样就不再进行回表了,同时能够得到一定的性能提升。
2.4、第四种解决方式
- 使用一些第三方搜索引擎框架进行实现。