博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
生产环境一个like模糊匹配SQL优化
阅读量:6304 次
发布时间:2019-06-22

本文共 664 字,大约阅读时间需要 2 分钟。

1
SELECT s.* FROM pre_common_member s WHERE s.`username` LIKE(
'%植物大战僵尸%'
) LIMIT 
100
;

like后面接'%关键字%' 这样是用不到索引的,会导致全表扫描,这条SQL查询耗时,见下图:

耗时:27.89秒

----------------------------------------------------------------------------------------

优化方案:

一、如果模糊查询不要求很准确,可以修改为:

1
SELECT s.* FROM pre_common_member s WHERE s.`username` LIKE(
'植物大战僵尸%'
) LIMIT 
100
;

like '关键字%'这样是可以用到索引的,这条SQL查询耗时,见下图:

耗时:0秒

二、如果模糊查询要求很准确,可以修改为:

1
2
3
select s.* FROM pre_common_member s join
(SELECT uid FROM pre_common_member WHERE username LIKE(
'%植物大战僵尸%'
) LIMIT 
100
)tmp
on s.uid=tmp.uid;

这条SQL查询耗时,见下图:

耗时:9.17秒

本文转自hcymysql51CTO博客,原文链接:http://blog.51cto.com/hcymysql/1365669 ,如需转载请自行联系原作者

你可能感兴趣的文章
Flink入坑指南第五章 - 语法糖 view
查看>>
centos 7.4 使用 pgxc_ctl 安装与使用
查看>>
Redis 单key值过大 优化方式
查看>>
【数据库】表分区
查看>>
nutz-sqltpl 1.3.4.RELEASE 发布,在 Nutz 项目中“解决 Java 拼接 SQL”问题
查看>>
城市 | 800个地铁站数据透析的京沪白领图鉴:隐形土豪、无产中产阶级和猪猪女孩...
查看>>
前端脚本!网站图片素材中文转英文
查看>>
linux的常用易忘命令
查看>>
PHP 分割字符串
查看>>
java 基于QRCode、zxing 的二维码生成与解析
查看>>
关于职业规划的一些思考
查看>>
img垂直水平居中与div
查看>>
Fabrik – 在浏览器中协作构建,可视化,设计神经网络
查看>>
防恶意注册的思考
查看>>
http2-head compression
查看>>
C# 命名空间
查看>>
订餐系统之同步美团商家订单
查看>>
使用ArrayList时设置初始容量的重要性
查看>>
Java Web-----JSP与Servlet(一)
查看>>
Maven搭建SpringMVC+Mybatis项目详解
查看>>