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、%加尽量右边

小总结

相关推荐
小陈工1 小时前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
0xDevNull5 小时前
MySQL数据冷热分离详解
后端·mysql
一定要AK5 小时前
Spring 入门核心笔记
java·笔记·spring
A__tao5 小时前
Elasticsearch Mapping 一键生成 Java 实体类(支持嵌套 + 自动过滤注释)
java·python·elasticsearch
KevinCyao6 小时前
java视频短信接口怎么调用?SpringBoot集成视频短信及回调处理Demo
java·spring boot·音视频
科技小花6 小时前
数据治理平台架构演进观察:AI原生设计如何重构企业数据管理范式
数据库·重构·架构·数据治理·ai-native·ai原生
一江寒逸6 小时前
零基础从入门到精通MySQL(中篇):进阶篇——吃透多表查询、事务核心与高级特性,搞定复杂业务SQL
数据库·sql·mysql
凯尔萨厮6 小时前
创建SpringWeb项目(Spring2.0)
spring·mvc·mybatis
D4c-lovetrain6 小时前
linux个人心得22 (mysql)
数据库·mysql
迷藏4946 小时前
**发散创新:基于Rust实现的开源合规权限管理框架设计与实践**在现代软件架构中,**权限控制(RBAC)** 已成为保障
java·开发语言·python·rust·开源