1、使用全文索引

MySQL 之全文索引:https://blog.csdn.net/mrzhouxiaofei/article/details/79940958

-- 直接查询400ms
SELECT * from item where title like '%小米%';
-- 创建全文索引,然后使用全文索引 35ms
create fulltext index item_title_fulltext on item(title);
select * from item where match(title) against('小米*' in boolean mode);

几个注意点

  • 对于中文,可以使用 MySQL 5.7.6 之后的版本,或者第三方插件。
  • 使用全文索引前,搞清楚版本支持情况;
  • 全文索引比 like + % 快 N 倍,但是可能存在精度问题;
  • 如果需要全文索引的是大量数据,建议先添加数据,再创建索引;

2、使用ICP特性

【mysql】关于ICP、MRR、BKA等特性:https://www.cnblogs.com/chenpingzhao/p/6720531.html
连模糊匹配like %%怎么优化都不知道:https://mp.weixin.qq.com/s/ygvuP35B_sJAlBHuuEJhfg

3、使用覆盖索引优化

-- 直接查询和添加了索引都是400ms
SELECT * from item where title like '%小米%';-- 添加title列添加索引,使用覆盖索引
explain SELECT title from item where title like '%小米%';
-- id也能使用覆盖索引,因为innodb存储引擎的辅助索引的叶子结点存的是主键id
-- 300ms相比之前快了100ms
select  * from item a , (SELECT id from item where title like '%小米%') b where a.id = b.id;
explain select  * from item a , (SELECT id from item where title like '%小米%') b where a.id = b.id;

mysql模糊查询like优化相关推荐

  1. MySQL模糊查询性能优化

    一.背景 我们经常在数据库中使用 LIKE 操作符来完成对数据的模糊搜索,LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式. 如果需要查找客户表中所有姓氏是"孙"的数据 ...

  2. mysql 模糊查询like优化方案(亲测)

    前言 本文的测试是基于740w条测试数据进行的,只讨论like模糊查询的优化方案.其他SQL优化可参考: SQL优化的几种方式 查询开头是"今天不开心"的聊天记录,是可以走索引的. ...

  3. MySQL模糊查询like优化,再也用不着 like+% 了

    我们都知道 InnoDB 在模糊查询数据时使用 "%xx" 会导致索引失效,但有时需求就是如此,类似这样的需求还有很多,例如,搜索引擎需要根基用户数据的关键字进行全文查找,电子商务 ...

  4. mysql模糊查询的优化方法--亲自实践

    数据有4W多条,不多,但是模糊查询 起来特别慢. 1,尝试过用 select * from (select * from a union all select * from b...很多表union) ...

  5. mysql模糊查询之索引优化

    mysql模糊查询之索引优化 三表连查之模糊查询索引优化 注:具体用法10和11步骤. 1.t_project表 DROP TABLE IF EXISTS `t_project`; CREATE TA ...

  6. mysql模糊查询提速_【MySQL】Mysql模糊查询like提速优化

    [MySQL]Mysql模糊查询like提速优化 在使用msyql进行模糊查询的时候,很自然的会用到like语句,通常情况下,在数据量小的时候,不容易看出查询的效率,但在数据量达到百万级,千万级的时候 ...

  7. 【mysql】mysql 模糊查询 like 语句

    mysql 模糊查询 like 语句 一 like 语句 %xxx%:查询 username 字段中包含 xxx 的记录. select * from user where username like ...

  8. mysql数据库优化课程---16、mysql慢查询和优化表空间

    mysql数据库优化课程---16.mysql慢查询和优化表空间 一.总结 一句话总结: a.慢查询的话找到存储慢查询的那个日志文件 b.优化表空间的话可以用optimize table sales; ...

  9. mysql 单表多字段查询_单表多字段MySQL模糊查询的实现

    MySQL模糊查询是我们经常会遇到的,下面就为您介绍MySQL模糊查询的实现方法,希望对您学习MySQL模糊查询方面能够有所帮助. 在最近的一个项目需要实现在单表中对多字段进行多个关键字的MySQL模 ...

最新文章

  1. python yield理解_对Python中Yield的理解
  2. 使用nsenter进入docker namespace
  3. Android用户界面开发(2):ListView
  4. python通过指定网卡发包_windows下用UDP 广播在特定网卡上发包
  5. 域管理中经常用到的组策略禁止修改IP及计算机名
  6. Python接口自动化之pymysql数据库操作
  7. 《嵌入式 - STM32开发指南》手把手教你搭建STM32开发环境 [Linux版 - 1]
  8. DICOM世界观·第二章:[2]像素操作
  9. Latex 使用\begin{aligned} 出现 Environment aligned undefined.
  10. esxi 7.0 封装瑞昱网卡驱动_虚拟机(ESXi)下硬盘性能的探索
  11. RDKit | 基于RDKit和SMARTS的化学反应处理
  12. php后端开发主要会哪些技术?
  13. web之大文件断点续传
  14. Rotating reference frame
  15. 实验楼_Linux基础入门_挑战1_寻找文件
  16. 步进电机+protues
  17. SAP PP 笔记(一) 概述
  18. cc1101 学习1
  19. Java统计文档中aeiou的个数
  20. OpenGLES---点精灵

热门文章

  1. 毕业 2 年,成为了首席架构师
  2. 使用Windows NT 的安全性(转)
  3. 牛人如何利用《老友记》Friends学英语
  4. Windows与ubuntu建立共享的两种方法
  5. 云计算有个毛用,下一场大战在这儿
  6. 3ds Max的操作快捷键
  7. spring boot支付宝沙盒扫二维码支付
  8. win7、win8旗舰版系统下载、32位、64位
  9. 小学课程表怎么排?如何快速高效地解决排课问题?
  10. 智能照明控制系统某大楼大厅照明的应用