mysql in查询不要去重_MySQL 查询优化

本文介绍了MySQL查询优化的各种策略,包括使用索引的原则,如全值匹配、最左前缀法则,避免索引失效的操作,如计算和范围查询。还提到了LIKE查询、OR操作和NULL值对索引的影响,以及LEFT JOIN、INNER JOIN和STRAIGHT_JOIN的使用。此外,还讨论了排序、分组、子查询和分页优化,强调了去重查询的高效方法,并给出了EXISTS与IN的使用建议。
摘要由CSDN通过智能技术生成

使用索引

规则

全值匹配:查询的字段按照顺序在索引中都可以匹配到,

最佳左前缀法则:指的过滤条件要使用索引必须按照索引建立时的顺序依次满足 , 一旦跳过某个字段 , 索引后面的字段都无法被使用。

不在索引列上做计算:不在索引列上做任何操作(计算、函数、(自动 or 手动)类型转换「尤其注意 varchar 和 int」),会导致索引失效而转向全表扫描。

索引列上不能有范围查询:将可能做范围查询的字段的索引顺序放在最后

尽量使用覆盖索引:查询列和索引列一致,不写 select *;

不使用不等于(!=以及 <>)

当字段允许为 NULL 时:where 后条件 is null 可以使用索引,is not null 不可以用到索引

Like 以通配符(%sadfj%)开头时,MySQL 索引失效。解决办法:①可以使用主键索引;②使用覆盖索引,查询字段必须是建立覆盖索引字段;③当覆盖索引指向的字段是 varchar(380) 及 380 以上的字段时,覆盖索引会失效!

字符串不加单引号索引失效

少用 or,用了索引会失效

示例

236256826dda1b16b23ee74b611d534b.png

助记口诀

全职匹配我最爱,最左前缀要遵守;

带头大哥不能死

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值