MySQL优化-模糊搜索查询

工作小记。最近又碰到了大量数据查数据库的时候慢的问题,检查了一下SQL语句,发现以前的代码踩坑了。这里给列出来顺便给小白们提个醒。SQL查询的where条件是有先手顺序的。范围查询要在索引后面。不然索引是不会生效的。具体看下方例子:

select * from test where a = '1' and b like '%2%' and c = '3';

上分这个SQL,加入你a、b、c都加入索引了的话,他只会走a这个字段的索引,后面的b跟c字段是不会走索引的。
因为b这个字段用了范围搜索,范围后面所有字段都不会走索引。正确的应该是:

select * from test where a = '1' and c = '3' and b like '%2%';

这样子写的话,他前面2个字段就会去走索引 完了再去走b这个字段的范围
数据量大起来的话,这样查询就会有很明显的感觉了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值