文章目录
案例
用例表结构
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`c1` varchar(10) COLLATE utf8mb4_bin DEFAULT NULL,
`c2` varchar(10) COLLATE utf8mb4_bin DEFAULT NULL,
`c3` varchar(10) COLLATE utf8mb4_bin DEFAULT NULL,
`c4` varchar(10) COLLATE utf8mb4_bin DEFAULT NULL,
`c5` varchar(10) COLLATE utf8mb4_bin DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_test_c1234` (`c1`,`c2`,`c3`,`c4`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
分析以下用例的索引使用情况
case 1
case 2
case 2.1
case 2.2
这种情况就很有可能是由于该表数据量少,mysql自己做了优化,mysql认为走全表扫描比索引更快。
case 3
case 3.1
case 3.2
case 4
case 4.1
case 4.2
case 4.3
这条sql实际上C2字段并不需要排序,因为c2=‘a2’,所以order by c3,c2实际上是order by c3
case 5
case 5.1
case 6
如上图所示,查询条件联合索引的第一个字段尽量用“=”去查询。
case 7
case 8
注
- 文章是个人知识点整理总结,如有错误和不足之处欢迎指正。
- 如有疑问、或希望与笔者探讨技术问题(包括但不限于本章内容),欢迎添加笔者微信(o815441)。请备注“探讨技术问题”。欢迎交流、一起进步。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/69837.html