【发布时间】:2011-07-27 02:25:58
【问题描述】:
我有一个来自旧系统的表,它没有主键。它记录了工厂发放材料的交易数据。
为简单起见,假设每行包含 job_number、part_number、quantity 和 date_issued。
我在发布日期列中添加了索引。当我运行 EXPLAIN SELECT * FROM issue_parts WHERE date_issued > '20100101' 时,它会显示:
+----+-------------+----------------+------+------ ----------+------+---------+------+---------+-- ------------+ |编号 |选择类型 |表|类型 |可能的键 |关键 | key_len |参考 |行 |额外 | +----+-------------+----------------+------+------ ----------+------+---------+------+---------+-- ------------+ | 1 |简单 |已发行零件 |全部 | date_issued_alloc |空 |空 |空 | 9724620 |使用位置 | +----+-------------+----------------+------+------ ----------+------+---------+------+---------+-- ------------+所以它看到了密钥,但没有使用它? 谁能解释一下原因?
【问题讨论】:
-
将列命名为
key并不能使其成为一个列。虽然我没有完全理解这个问题,但如果您想要这种功能,请将key列指定为主键。如果不是,您将需要提供更多信息(例如当前架构)。
标签: mysql select indexing explain