工作小记。最近又碰到了大量数据查数据库的时候慢的问题,检查了一下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这个字段的范围
数据量大起来的话,这样查询就会有很明显的感觉了。