mysql的负向条件查询会不会使用索引

mysql的负向条件查询,例如not in,会不会使用索引?

其实,mysql还是会尽量利用索引。如果查询的列上有索引,并且索引能够覆盖查询所需的列,那么mysql可能会使用索引来获取结果,而不是进行全表扫描。

例如,执行语句explain select * from test_table where type not in ('login', 'register');查看执行计划,其中使用了负向条件not in:

从上面输出可以看出,这个负向查询还是使用了索引的。

执行语句explain select * from test_table where type in ('login', 'register');查看执行计划,其中使用正向条件in:

从输出可以看出,这个正向条件查询也使用了索引。

相关推荐
TG_yunshuguoji14 小时前
阿里云国际代理:云数据库RDS及上云方案
服务器·数据库·阿里云·云计算
FOLLOW ME31114 小时前
MySQL集群高可用架构
数据库·mysql·架构
TG_yunshuguoji14 小时前
阿里云国际代理:稳定、高效、便捷的数据库服务-云数据库RDS
运维·服务器·数据库·阿里云·云计算
·云扬·14 小时前
MySQL 日志全解析:Binlog/Redo/Undo 等 5 类关键日志的配置、作用与最佳实践
android·mysql·adb
danns88815 小时前
neo4j数据库创建范例(SQL文)
数据库·sql·neo4j
程序新视界15 小时前
一篇文章全面重温MySQL的join操作
mysql
BYSJMG15 小时前
计算机毕设选题:基于Python+MySQL校园美食推荐系统【源码+文档+调试】
大数据·开发语言·python·mysql·django·课程设计·美食
不爱洗脚的小滕15 小时前
【Redis】Scan 命令使用教程:高效遍历海量数据
数据库·redis·bootstrap
宁小法16 小时前
MySQL - 全表扫描 会发生死锁?
数据库·mysql·死锁·存储引擎·全表扫描
瑜伽娃娃16 小时前
基于Redis设计一个高可用的缓存
数据库·redis·缓存