MYSQL索引优化法则
2024-09-07 11:08:31
目录
一首诗送给各位:
全值匹配我最爱,最左前缀要遵守;
带头大哥不能死,中间兄弟不能断;
索引列上少计算,范围之后全失效;
Like百分写最右,覆盖索引不写星;
不等空值还有or,索引失效要少用;
VAR引号不可丢,SQL高级也不难!
举个栗子:
假设index(a,b,c)
where语句 | 索引是否被用到 | 原因 |
---|---|---|
where a=3 | 使用到a | 全值匹配 |
where a=3 and b=5 | 使用到a,b | 全值匹配 |
where a=3 and b=5 and c=4 | 使用到a,b,c | 全值匹配 |
where b=3 or where b=3 and c=4 or where c=4 | NULL | 因为按照创建索引的顺序第一个索引列a没有被用到,导致后面的索引失效。 |
where a=3 and c=5 | 使用到a | b没有被用到,导致c失效 |
where a=3 and b>4 and c=5 | 使用到a | b为范围查询索引失效导致C也失效 |
where a=3 and b like 'kk%' and c =4 | 使用到a,b,c | 这里的b是可以用到的因为百分号在最右结合最左前缀原则,虽然%相当于范围查询但是在最右,最左边是定值。 |
where a=3 and b like '%kk' and c=4 | 使用到a | b中间断开失效导致c也失效 |
where a=3 and b like '%kk%' and c=4 | 使用到a | b断开 |
where a=3 and b like 'k%kk%' and c=4 | 使用到a,b,c | 同上上上 |
最新文章
- 【原创】如何用Android Studio断点安卓自带Service或Bind类型的Service
- HttpWebRequest向路由器提交基本身份验证
- java怎么建立JAVA工程项目?
- 七、考反映小游戏《苹果iOS实例编程入门教程》
- ALTFP_CONVERT IP使用与仿真
- MSI/MSI-X
- org.openqa.selenium.SessionNotCreatedException: A new session could not be created.
- 表单元素的外观改变(webkit and IE10)
- eoLinker 新功能发布,增加了识别代码注释自动生成文档功能
- Unity3d 动态加载场景物件与缓存池的使用
- Apache Shiro Java反序列化漏洞分析
- 平衡二叉树(AVL)介绍及其实现
- 正则冷知识;分组捕获、replace()的用法...
- 关于QQ的NABCD模型
- 【CTF MISC】隐写术wireshark找出图片-“强网杯”网络安全挑战赛writeup
- Nginx或Apache通过反向代理配置wss服务
- c#: UrlDecode()
- eclipse中导入SVN项目步骤
- YUV与RBG的装换公式
- 转载:MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解
热门文章
- AtCoder Beginner Contest 168
- 【uva 11082】Matrix Decompressing(图论--网络流最大流 Dinic+拆点二分图匹配)
- WPF Animation For SizeChanged Of UIElement
- K8S(14)监控实战-grafana出图_alert告警
- codeforces - 978D【思维】
- Unknown command '\b'. 关于Mysql导入外部数据库脚本报错的解决
- sdut2879 枚举起点DP
- Python+argparse+notebook
- php foundation knowledge!
- TS &; ES-Next &; playground