SQL实战之索引失效案例详解

文章目录

总体原则

sql 复制代码
	1、全值匹配我最爱
	2、最佳左前缀法则:指的是查询从索引的最左前列开始且不跳过索引中的列。(带头大哥不能死,中间兄弟不能断)
	3、不在索引列上做任何操作(计算、函数、自动or手动类型转换),会导致索引失效而转向全表扫描type=all(索引列上少计算)
	4、不能使用索引中范围条件右边的列(范围之后全失效)
	5、尽量使用覆盖索引(索引列和查询列一致),(尽量减少使用select *)
	6、like以通配符开头mysql索引失效会变成全表扫描的操作 (like %加右边)
	7、字符串varchar不加单引号索引失效(字符串里留引号)
	8、is null,is not null, or, != 无法使用索引会导致全表扫描

              SQL索引优化口诀
        全值匹配我最爱,最左前缀要遵守;
        带头大哥不能死,中间兄弟不能断;
        索引列上少计算,范围之后全失效;
        LIKE百分写最右,覆盖索引不写星;
        不等空值还有or,索引失效要少用;
        VAR引号不可丢,SQL高级也不难!

案例一:索引第一个字段不能丢,否则索引失效

新建索引:ALTER TABLE staffs ADD INDEX idx_ staffs nameAgePos(name, age, pos),

案例二:索引列上少计算

案例三:范围之后全失效

案例四:尽量少使用select *、不等于(!=或者<>)、is null,is not null、%加尽量右边

小总结

相关推荐
AA-代码批发V哥26 分钟前
Java五种方法批量处理List元素全解
java·list
程序员Bears2 小时前
SSM整合:Spring+SpringMVC+MyBatis完美融合实战指南
java·spring·mybatis
Channing Lewis3 小时前
SQL Server 简介和与其它数据库对比
数据库
阿文弟4 小时前
浅谈Mysql的MVCC机制(RC与RR隔离级别)
数据库·mysql
liuyang-neu4 小时前
黑马点评双拦截器和Threadlocal实现原理
java
要睡觉_ysj5 小时前
MySQL锁机制与MVCC深度解析
数据库·mysql
csdn_aspnet5 小时前
Java 程序求圆弧段的面积(Program to find area of a Circular Segment)
java·开发语言
看到千里之外的云5 小时前
用service 和 SCAN实现sqlplus/jdbc连接Oracle 11g RAC时负载均衡
数据库·oracle·负载均衡
野犬寒鸦5 小时前
Redis核心数据结构操作指南:字符串、哈希、列表详解
数据结构·数据库·redis·后端·缓存·哈希算法
无敌小肥0076 小时前
Springboot 整合 WebSocket 实现聊天室功能
spring boot·后端·websocket