我使用MySQL
存储引擎有一个InnoDB
表。它包含大约8000000数据行,当我使用
delete from t where id in(1,2,3...)
删除10000行数据,虽然id是主键,但它没有提示主键索引。表t具有6 indexes(Including primary key)
。当我将SQL
更改为]]
select * from t where id in(1,2,3...)
它可以命中主键索引。当我减少参数数量以删除5000行数据时,或者当我删除非主键索引但仍删除10000行数据时,它也可以命中主键索引。
mysql版本是5.7.27。要删除的ID是根据特定条件选择的,不是连续的。当我尝试保留两个辅助索引时,仍可以使用主键索引。
为什么尽管指定了主键值却没有命中索引?
deleted records
的数量与secondary index
的数量有什么关系?
我有一个使用InnoDB存储引擎的MySQL表。它包含大约8000000个数据行,当我使用id in(1,2,3 ...)从t中的delete删除10000行数据时,它没有暗示...
IN
列表的两种方式之间的界限。