mariadb数据库索引失效情况
最近看了一篇博客,研究索引失效情况,但是实际测试有一些不太一样的地方
数据库版本
我使用的是mariadb,mysql的一个分支版本,具体版本为mysql Ver 15.1 Distrib 10.5.10-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
建库脚本
1 | |
!= 操作符
博客 第6点 写到 != 操作符永远不会使用到索引
然而实际测试之后并非如此

mysql
再使用mysql做测试,版本mysql Ver 14.14 Distrib 5.7.34, for Linux (x86_64) using EditLine wrapper

这次就和文章说法一致了
组合索引,不使用第一列,索引失效
文章中使用了以下sql
1 | |
explain 之后的结果确实和文章中所说相同,但是如果对查询列表做下修改

可以看出,尽管违背了最左匹配原则,但是还是使用了索引。
原因就在于查询列表的列都在这个索引里存着,没有相应的回表操作,相比起数据量大的全表扫描,还是索引代价更低。所以还是会使用索引
mariadb数据库索引失效情况
http://blog.inkroom.cn/2021/05/27/2Z9HJBH.html