mysql索引优化
创始人
2025-01-15 20:35:23
0

1、不在索引列做任何操作:

函数表达式:select  sum(id) from

计算:where  id + 1;

隐式转换:where  id + ""

2、尽量全值匹配(在联合索引中,where 后面的条件尽量和索引的所有列匹配);

where 后面的条件先后顺序与索引的字段顺序没关,查询优化器会调整顺存

3、遵守最佳左前缀法则;

当where 语句不能全值匹配时,也要遵守最佳左前缀法则;

index   username,phone,status;

where   phone,status            -----不推荐

where  username,phone     -------推荐

4、范围条件放最后(也是针对联合索引)

=

between     and

中间也有范围查询,后面也有范围查询,则后面的范围查询索引会失效

where  username=a   and   status>0   and starttime  between    and

5、尽量使用覆盖索引,覆盖select后的所有列,避免回表查询

不要使用select  *

6、不等于要慎用;!=、>=、<=

7、is null和is  not  null也可以会导致索引失效

如果字段是非空,那么is  null会导致索引失效?

如果字段不是非空(可以为空),is   not  null会导致索引失效?

8、字符串加引号(不加的话,mysql会自动加上,相当于对索引列做了操作,索引列会失效)

9、like条件查询

like  "abc%" 索引不失效;

like   "%abc"   索引失效,因为字符串排序,然后前面不确定,就会失效

10、使用or条件也可能会导致索引失效:,

order_no = 'aaa'   or   order_no='bbbb';   or前后字段一样,索引生效

order_no = 'aaaa'    or   status = 0;           字段不一样,其中一个没索引,则索引失效;优化:拆成两个select 语句,使用union all连接;

11、排序优化,ASC,DESC

order  by  字段的顺序尽量和复合索引字段的顺序一致,否则会导致随机读取数据;

select  *  from  table1,table2 order by只会按一个表排序

12、按主键顺序插入行

(主键不建议使用UUID)

13、count()优化:根据业务来

count(*) 统计的是所有行,包含为null的行;

count( email) 统计的是不包含null的行;

count(*)遍历数据,判断null,返回数据,累加

count(0)遍历数据,判断null,不返回数据,只累加

count(字段)遍历数据,判断null,为null的数据不返回,返回数据,累加

14、优化limit(深分页问题)

select * from  table  limit  10000,10;会进行全表扫描;使用子查询进行优化:

select  * from 

        (select id  from  table  limit  10000,10) t1;会走主键索引;但效果不明显;可以根据业务:如果id是有顺序的:

select   * from   where   id> 10000   limit 10000,10;那么不会再扫描10000前的数据;

15、关于null值(有争议)不在where 语句中进行is  null或is not  null的判断

mysql认为:任何值与null比较都是null

优化:使用默认值

16、in 和not in也有可能会导致索引失效:使用exist代替in,或者使用子查询

相关内容

热门资讯

黑科技免费!德州之星有机器人(... 黑科技免费!德州之星有机器人(德州ai辅助软件)确实是有挂(有挂细节)-哔哩哔哩;德州ai辅助软件辅...
避坑细节!wpk微扑克辅助ai... 避坑细节!wpk微扑克辅助ai(软件透明挂)透明挂教程(2026已更新)(哔哩哔哩)1、wpk微扑克...
黑科技辅助(微扑克辅助安卓版本... 黑科技辅助(微扑克辅助安卓版本)外挂透明挂辅助工具(透视)果然是真的有挂(有挂解惑)-哔哩哔哩1、这...
黑科技脚本(WePoKe)微扑... 黑科技脚本(WePoKe)微扑克辅助器是真的吗(黑科技ai)竟然是真的有挂(2026已更新)(哔哩哔...
黑科技智能ai!鱼扑克有挂(德... 黑科技智能ai!鱼扑克有挂(德扑ai智能机器人线上代打)先前真的是有挂(确实有挂)-哔哩哔哩是一款可...
必备科技!德州之星app安卓版... 必备科技!德州之星app安卓版(智能ai)我来教教你(2020已更新)(哔哩哔哩)是一款可以让一直输...
黑科技计算(wepoke有插件... 黑科技计算(wepoke有插件吗)外挂透明挂辅助插件(透视)总是真的是有挂(有挂存在)-哔哩哔哩1、...
黑科技教程(WePoKe)wp... 黑科技教程(WePoKe)wpk有透视辅助吗(透明挂)都是真的有挂(2023已更新)(哔哩哔哩);1...
黑科技辅助挂!德州之星app有... 黑科技辅助挂!德州之星app有漏洞(德扑AI策略软件)本然真的有挂(有挂总结)-哔哩哔哩1、不需要A...
科普!wpk微扑克真的有辅助插... 科普!wpk微扑克真的有辅助插件吗(智能ai)详细教程(2025已更新)(哔哩哔哩)wpk微扑克真的...