Таблица
items_set ~ 87 000 000 строк (10 ГБ)
CREATE TABLE `items_set` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`items_set_id` bigint(20) NOT NULL,
`catalog_id` bigint(20) NOT NULL,
`item_id` bigint(20) NOT NULL,
`original_item_code` varchar(255) DEFAULT NULL,
`quantity` bigint(20) unsigned NOT NULL DEFAULT '1',
`mask` varchar(255) NOT NULL,
`description_ru` varchar(255) DEFAULT NULL,
`description_en` varchar(255) DEFAULT NULL,
`description_ja` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`,`item_id`),
KEY `catalog_id_and_items_set_id_idx` (`catalog_id`,`items_set_id`) USING BTREE,
KEY `original_item_code_idx` (`original_item_code`) USING BTREE,
KEY `items_set_id_idx` (`items_set_id`) USING BTREE,
KEY `item_id_idx` (`item_id`) USING BTREE,
KEY `catalog_id_idx` (`catalog_id`) USING BTREE,
KEY `item_id` (`item_id`,`catalog_id`),
KEY `item_id_2` (`item_id`,`items_set_id`)
) ENGINE=InnoDB AUTO_INCREMENT=431611457 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
Выбираем данные простым запросом.
Получаем время выполнения ~8 сек. Возвращено ~10 000 записей.
SELECT SQL_NO_CACHE
catalog_id, items_set_id, mask
FROM items_set
WHERE item_id = 741761
Меняем запрос.
Получаем время выполнения < 1 сек. Возвращено ~10 000 записей.
SELECT SQL_NO_CACHE
*
FROM items_set
WHERE item_id = 741761
Почему такая разница между перечислением полей и *.
Перезагружал MySQL. Отключал кэш. Менял местами запросы. Ничего не изменилось.
Спасибо.