Mysql Like查询优化
嘻嘻发布于2019-09-11
最后更新于2020年3月17日
浏览现在很多的业务都需要用到查询,而且都是模糊查询,对于少量的数据模糊查询完全够用,不需要进行优化,但是一旦数据量上升模糊查询的效率变得很差,在mysql中模糊查询主要是使用like来实现,最近发现总结了一下like的优化,like使用的三种情况:
- Like “%keyword”
- Like “%keyword%”
- Like “keyword%”
使用mysql来解析这三种情况的执行过程:
- Like “%keyword%”:
EXPLAIN SELECT * FROM wp_posts WHERE post_name LIKE ‘%chrome%’;
2. Like "%keyword"
3. Like "keyword%"
通过以上三种情况已看出“%like%”,无法使用索引的,优化的第一个方向就是使用将SQL优化成已关键词开头或者结尾的SQL。另外一个优化的方向是使用mysql的LOCATE,INSTR,REGEXP三个函数优化。
最后如果是数据量过大的情况,对搜索时效性特别高,考虑使用独立的搜索引擎来做,如Lucene,ES。