Оператор SELECT без использования possible_keys

У меня есть таблица из устаревшей системы, у которой нет первичного ключа. Он записывает транзакционные данные для выпуска материалов на фабрике.

Для простоты, допустим, каждая строка содержит job_number, part_number, количество и date_issued.

Я добавил индекс в столбец даты выпуска. Когда я запускаю EXPLAIN SELECT * FROMmitted_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 |
+----+-------------+----------------+------+-------------------+------+---------+------+---------+-------------+

Значит, он видит ключ, но не использует его?

У меня есть таблица из устаревшей системы, в которой нет первичного ключа. Он записывает транзакционные данные для выпуска материалов на фабрике.

Для простоты, допустим, каждая строка содержит job_number, part_number, количество и date_issued.

Я добавил индекс в столбец даты выпуска. Когда я запускаю EXPLAIN SELECT * FROMmitted_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 |
+----+-------------+----------------+------+-------------------+------+---------+------+---------+-------------+

Значит, он видит ключ, но не использует его?

У меня есть таблица из устаревшей системы, в которой нет первичного ключа. Он записывает транзакционные данные для выпуска материалов на фабрике.

Для простоты, допустим, каждая строка содержит job_number, part_number, количество и date_issued.

Я добавил индекс в столбец даты выпуска. Когда я запускаю EXPLAIN SELECT * FROMmitted_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 |
+----+-------------+----------------+------+-------------------+------+---------+------+---------+-------------+

Значит, он видит ключ, но не использует его? Can someone explain why?

10
задан Paul Wieland 31 March 2011 в 17:22
поделиться