У меня очень простая таблица с двумя столбцами, но в ней 4,5 млн строк.
CREATE TABLE `content_link` (
`category_id` mediumint(8) unsigned NOT NULL,
`content_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`content_id`,`category_id`),
KEY `content_id` (`content_id`,`category_id`)
) ENGINE=MyISAM;
Когда я запускаю простой запрос вроде:
SELECT
*
FROM
content_link
WHERE
category_id = '11';
mysql запускает процессор и занимает 2-5 секунд, прежде чем возвращает около 10 строк. Данные распределяются очень равномерно по всей таблице, и я обращаюсь к индексированным полям (я также анализировал / оптимизировал таблицу и никогда не меняю содержимое таблицы), так почему же этот запрос занимает так много времени?
Редактировать: Мне кажется, что Navicat лгал мне, и мой первичный ключ не был введен в правильном порядке, поскольку он отображал мне таблицу.