Categories: Mysql数据库

Mysql Like查询优化

现在很多的业务都需要用到查询,而且都是模糊查询,对于少量的数据模糊查询完全够用,不需要进行优化,但是一旦数据量上升模糊查询的效率变得很差,在mysql中模糊查询主要是使用like来实现,最近发现总结了一下like的优化,like使用的三种情况:

  • Like  “%keyword”
  • Like  “%keyword%”
  • Like  “keyword%”

使用mysql来解析这三种情况的执行过程:

  1. 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。

 

5.0
02
Mysql数据库drop、truncate和delete的区别
嘻嘻

嘻嘻IT: 笔者是一个工作七八年的程序猿老鸟,从事涉及的技术栈主要包括PHP、Linux、Devops等,喜欢研究新技术,尝试新技术,提升技术自动化和开发效率,致力于write less,do more! 技术每年都会层出不穷,领域划分的越来越细,不可能学习所有的东西,保持对技术的好奇心,理解技术中核心思想,做一个有深度,有思想的开发!

Recent Posts

SEOJuice一款AI内链优化工具

SEOJuice是一款创新的工…

19小时 ago

全球货币导航网页上线了!

o在全球化的今天,货币兑换和国…

1天 ago

bash字符串拼接

在编程中,字符串的拼接是一个非…

1天 ago

Bash Case详解

Bash case 语句通常用…

1天 ago