我有一个没有主键的遗留系统表。它记录在工厂发放材料的交易数据。SELECT语句不使用possible_keys
为了简单起见,可以说每行都包含job_number,part_number,数量为& date_issued。
我在发布的日期列中添加了一个索引。当我运行一个EXPLAIN SELECT * FROM issued_parts WHERE date_issued> '20100101',它显示了这一点:
+----+-------------+----------------+------+-------------------+------+---------+------+---------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+----------------+------+-------------------+------+---------+------+---------+-------------+ | 1 | SIMPLE | issued_parts | ALL | date_issued_alloc | NULL | NULL | NULL | 9724620 | Using where | +----+-------------+----------------+------+-------------------+------+---------+------+---------+-------------+
所以它看到的关键,但它不使用它呢? 有人可以解释为什么吗?
命名一个'key'列不会使它成为一个。虽然我没有完全理解这个问题,但是如果您想要这种功能,请将'key'列作为主键。如果不是,你需要提供更多的信息(比如当前的模式)。 – 2011-03-31 17:25:32