mysql模糊查询like优化
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优化相关推荐
- MySQL模糊查询性能优化
一.背景 我们经常在数据库中使用 LIKE 操作符来完成对数据的模糊搜索,LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式. 如果需要查找客户表中所有姓氏是"孙"的数据 ...
- mysql 模糊查询like优化方案(亲测)
前言 本文的测试是基于740w条测试数据进行的,只讨论like模糊查询的优化方案.其他SQL优化可参考: SQL优化的几种方式 查询开头是"今天不开心"的聊天记录,是可以走索引的. ...
- MySQL模糊查询like优化,再也用不着 like+% 了
我们都知道 InnoDB 在模糊查询数据时使用 "%xx" 会导致索引失效,但有时需求就是如此,类似这样的需求还有很多,例如,搜索引擎需要根基用户数据的关键字进行全文查找,电子商务 ...
- mysql模糊查询的优化方法--亲自实践
数据有4W多条,不多,但是模糊查询 起来特别慢. 1,尝试过用 select * from (select * from a union all select * from b...很多表union) ...
- mysql模糊查询之索引优化
mysql模糊查询之索引优化 三表连查之模糊查询索引优化 注:具体用法10和11步骤. 1.t_project表 DROP TABLE IF EXISTS `t_project`; CREATE TA ...
- mysql模糊查询提速_【MySQL】Mysql模糊查询like提速优化
[MySQL]Mysql模糊查询like提速优化 在使用msyql进行模糊查询的时候,很自然的会用到like语句,通常情况下,在数据量小的时候,不容易看出查询的效率,但在数据量达到百万级,千万级的时候 ...
- 【mysql】mysql 模糊查询 like 语句
mysql 模糊查询 like 语句 一 like 语句 %xxx%:查询 username 字段中包含 xxx 的记录. select * from user where username like ...
- mysql数据库优化课程---16、mysql慢查询和优化表空间
mysql数据库优化课程---16.mysql慢查询和优化表空间 一.总结 一句话总结: a.慢查询的话找到存储慢查询的那个日志文件 b.优化表空间的话可以用optimize table sales; ...
- mysql 单表多字段查询_单表多字段MySQL模糊查询的实现
MySQL模糊查询是我们经常会遇到的,下面就为您介绍MySQL模糊查询的实现方法,希望对您学习MySQL模糊查询方面能够有所帮助. 在最近的一个项目需要实现在单表中对多字段进行多个关键字的MySQL模 ...
最新文章
- python yield理解_对Python中Yield的理解
- 使用nsenter进入docker namespace
- Android用户界面开发(2):ListView
- python通过指定网卡发包_windows下用UDP 广播在特定网卡上发包
- 域管理中经常用到的组策略禁止修改IP及计算机名
- Python接口自动化之pymysql数据库操作
- 《嵌入式 - STM32开发指南》手把手教你搭建STM32开发环境 [Linux版 - 1]
- DICOM世界观·第二章:[2]像素操作
- Latex 使用\begin{aligned} 出现 Environment aligned undefined.
- esxi 7.0 封装瑞昱网卡驱动_虚拟机(ESXi)下硬盘性能的探索
- RDKit | 基于RDKit和SMARTS的化学反应处理
- php后端开发主要会哪些技术?
- web之大文件断点续传
- Rotating reference frame
- 实验楼_Linux基础入门_挑战1_寻找文件
- 步进电机+protues
- SAP PP 笔记(一) 概述
- cc1101 学习1
- Java统计文档中aeiou的个数
- OpenGLES---点精灵