我有一个包含大约 300 万条记录的简单表。我做了必要的索引,我也强制索引 PRIMARY 但仍然不起作用。它搜索几乎所有 300 万行,而不是使用索引来执行这一行(record_id 是 INT 自动增量):
EXPLAIN SELECT record_id
FROM myrecords
FORCE INDEX (
PRIMARY )
ORDER BY record_id ASC
LIMIT 2955900 , 300
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE myrecords index NULL PRIMARY 4 NULL 2956200 Using index
指数是
Keyname Type Unique Packed Column Cardinality Collation Null
PRIMARY BTREE Yes No record_id 2956742 A No
我想知道为什么这个 FORCED 索引没有被正确使用。
如果 ASC 和 DESC 都尝试不强制索引“主要”,结果是相同的。表已修复-优化-分析。没运气。
查询需要超过一分钟才能执行!
我所期望的:查询应该只处理 300 行,因为该列已被索引。正如您在第一个代码格式化块中看到的那样,几乎不是全部 300 万个(向右滚动一点)