Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Mikasto 24.09.2007 11:16
Запрос вроде бы простой, но почему-то невозможно избавиться от Using temporary; Using filesort.CREATE TABLE `organizations` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`id`), ) ENGINE=InnoDB DEFAULT CHARSET=utf8;и
CREATE TABLE `usage_groups` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `id_package` int(10) unsigned NOT NULL DEFAULT '0', `id_organization` int(10) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `FK_usage_group_package` (`id_package`), KEY `FK_usage_group_organiuzation` (`id_organization`), KEY `id_package` (`id_package`,`id_organization`), ) ENGINE=InnoDB DEFAULT CHARSET=utf8;EXPLAIN (незначимые строки убраны):
id select_type table type key rows Extra 1 SIMPLE ug index id_package 2657 Using index; Using temporary; Using filesort 1 SIMPLE o eq_ref PRIMARY 1И запрос:
SELECT o.title FROM `organizations` o JOIN `usage_groups` ug ON o.id = ug.`id_organization` GROUP BY o.id ORDER BY ug.`id_package` DESC LIMIT 0, 10Помогите убрать filesort! Время выполнения в разы замедляется..