mysql in 会使用索引吗?

mysql in 会使用索引吗?,第1张

通常情况:\x0d\x0a在有索引的情况且查询条件使用到索引列的话,会使用索引\x0d\x0a具体可以使用\x0d\x0aexplain($sql statement)来分析\x0d\x0a特殊情况\x0d\x0a\x0d\x0a如select 语句使用了ignore index的话,则不会使用

CREATE TABLE `test_a` (

id int PRIMARY KEY AUTO_INCREMENT,

  `id_a` varchar(20) ,

  `name` varchar(20) ,

  `sort` int(11) DEFAULT NULL,

  `sort1` int(11) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8

自增主键,mysql会自动创建唯一索引

表里记录4条

EXPLAIN SELECT * from test_a WHERE id in(1,2,3)

走索引在指定范围内进行查询 range

EXPLAIN SELECT * from test_a WHERE id in(1,2,3,4)

全表扫描,不走索引,表里有4条数据,查询也是4条,mysql判定全表扫描

mysql会根据表里的总条数和查询条数判定是否应该走索引,自己指定force index(索引名字)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7349863.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存