У меня странная проблема с простым индексом MySQL.
Я получил следующую таблицу:
CREATE TABLE `import` (
`import_id` int(11) NOT NULL AUTO_INCREMENT,
`import_title` text,
`import_url` text,
`import_description` text,
`import_completed` enum('y','n') NOT NULL DEFAULT 'n',
`import_user` int(11) DEFAULT NULL,
`import_added` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`import_id`),
KEY `import_added` (`import_added`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
В этой таблице несколько тысяч строк, и я хочу получить первые 100 со следующим предложением Select:
SELECT
import_id,
import_title,
import_url,
import_description,
import_user,
import_added
FROM import
WHERE import_completed = 'n'
ORDER by import_added ASC
LIMIT 0,100
Когда я использую DESCRIBE для более тщательного изучения запроса, мой локальный компьютер использует добавленный индекс и возвращает 100 строк в течение нескольких миллисекунд, как и ожидалось.
Когда я использую ту же базу данных с той же структурой и содержимым на своем «производственном» сервере и использую там DESCRIBE, это показывает, что индекс также используется, но он возвращает все строки в этой таблице и запросезанимает около 6 секунд.
Чего мне не хватает?Почему индекс не работает правильно?