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:

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

相关推荐
工藤学编程12 分钟前
分库分表之实战-sharding-JDBC水平分库+分表后:查询与删除操作实战
数据库·spring boot·后端·sql·mysql
秋也凉1 小时前
redis的命令集合
数据库·redis·缓存
C++ 老炮儿的技术栈1 小时前
Visual Studio 2022 MFC Dialog 添加Toolbar及Tips提示
服务器·c语言·数据库·c++·ide·算法·visual studio
王立志_LEO1 小时前
数据库命名规范
mysql
秋难降1 小时前
Python 知识点详解(二)
数据库·python·正则表达式
悟道|养家2 小时前
数据库性能优化指南:解决ORDER BY导致的查询性能问题( SQL Server )
数据库·性能优化
czhc11400756632 小时前
LINUX79 MYSQL
数据库·mysql
rocksun2 小时前
使用MCP Toolbox for Databases访问数据库
数据库·人工智能·mcp
程序员岳焱3 小时前
MySQL 基础 SQL 优化秘籍:4 大技巧让查询性能飙升!
后端·mysql·性能优化
星晨雪海4 小时前
MySQL安装报错解决
数据库·mysql