berkut
Новичок
оптимизация order by
подскажите как избавиться от using temp, file sort на таком запросе:
таблицы:
-~{}~ 18.03.09 15:14:
я пробывал создать отдельно индекс на date. составной: uad.association_id, date - толку ноль
-~{}~ 18.03.09 15:19:
собсно я вообще не понимаю, почему это на таблице, по которой и не сортируется ничего. если убрать order by - temp, filesort пропадает
-~{}~ 18.03.09 15:23:
я даже уже и проблему решил, почти случайно, но почему он в этом варианте юзает временную на ua???
подскажите как избавиться от using temp, file sort на таком запросе:
Код:
SELECT *
FROM users_associations AS ua
INNER JOIN user_association_data AS uad ON ua.id = uad.association_id
WHERE ua.creator = 2
ORDER BY uad.`date` DESC
LIMIT 0, 4
Код:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE ua ref creator,ghj creator 3 const 3_449 Using temporary; Using filesort
1 SIMPLE uad ref assId assId 4 ua.id _ 1
Код:
CREATE TABLE `users_associations` (
`id` INTEGER(11) UNSIGNED NOT NULL DEFAULT '0',
`creator` MEDIUMINT(9) UNSIGNED NOT NULL DEFAULT '0',
`flag` SET('attending','friend') DEFAULT NULL,
KEY `creator` (`creator`),
KEY `ghj` (`creator`, `id`)
)ENGINE=MyISAM
ROW_FORMAT=FIXED CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
CREATE TABLE `user_association_data` (
`id` INTEGER(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`association_id` INTEGER(11) UNSIGNED NOT NULL DEFAULT '0',
`date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`description` TEXT COLLATE utf8_general_ci NOT NULL,
PRIMARY KEY (`id`),
KEY `assId` (`association_id`)
)ENGINE=MyISAM
AUTO_INCREMENT=10147 CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
я пробывал создать отдельно индекс на date. составной: uad.association_id, date - толку ноль
-~{}~ 18.03.09 15:19:
собсно я вообще не понимаю, почему это на таблице, по которой и не сортируется ничего. если убрать order by - temp, filesort пропадает
-~{}~ 18.03.09 15:23:
я даже уже и проблему решил, почти случайно, но почему он в этом варианте юзает временную на ua???