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:

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

相关推荐
盛世宏博北京8 分钟前
学校图书馆自动化恒温恒湿控制系统技术方案
网络·数据库·人工智能
Sammyyyyy20 分钟前
MongoDB 的文档模型与 CRUD 实战
开发语言·数据库·mongodb·servbay
宁小法27 分钟前
SQL查询对比: select exists($sql) 跟 select * from `users` where `id` = 60000001的区别差异
数据库·sql·select exists
语落心生31 分钟前
Flink 到 Doris 数据同步----从二阶段提交到幂等性 StreamLoader 的演进之路
数据库
程序员阿鹏31 分钟前
事务与 ACID 及失效场景
java·开发语言·数据库
CC.GG1 小时前
【Qt】常用控件----QWidget属性
java·数据库·qt
忍冬行者1 小时前
kubeadm安装的k8s集群涉及etcd数据库的参数优化
数据库·kubernetes·etcd
大猫和小黄1 小时前
若依微服务Cloud中Quartz-Job模块适配OpenGauss数据库
数据库·微服务·opengauss·quartz·定时任务·若依·job
悟空码字2 小时前
MySQL分库分表,从“一室一厅”到“豪华别墅区”的数据库升级之旅
java·后端·mysql
奔跑的小十一2 小时前
ShardingSphere-JDBC 开发手册
java·数据库