Использование индекса, использование временного, использование файловой сортировки - как это исправить?

Я работаю над системой отслеживания событий, которая использует несколько справочных таблиц, а также первичную таблицу журналирования. В отчете яНаписание, объект может быть выбран для просмотра статистики. Интерфейс показывает все объекты в порядке убывания важности (т. Е. Попаданий).

Схема для двух таблиц (слегка урезанная, но вы понимаете суть):

CREATE TABLE IF NOT EXISTS `event_log` (
  `event_id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(5) DEFAULT NULL,
  `object_id` int(5) DEFAULT NULL,
  `event_date` datetime DEFAULT NULL,
  PRIMARY KEY (`event_id`),
  KEY `user_id` (`user_id`),
  KEY `object_id` (`object_id`)
);

CREATE TABLE IF NOT EXISTS `lookup_event_objects` (
  `object_id` int(11) NOT NULL AUTO_INCREMENT,
  `object_desc` varchar(255) NOT NULL,
  PRIMARY KEY (`object_id`)
);

Запрос яУ меня возникли проблемы с ниже. Он отлично работает с моей таблицей ~ 100 записей, но ОБЪЯСНЕНИЕ меня немного беспокоит.

    explain SELECT 
            el.object_id, 
            leo.object_desc, 
            COUNT(el.object_id) as count_rows
        FROM 
            event_log el 
            LEFT JOIN lookup_event_objects leo ON leo.object_id = el.object_id
        GROUP BY 
            el.object_id
        ORDER BY 
            count_rows DESC,
            leo.object_desc ASC

Возвращает:Using index; Using temporary; Using filesort

И что'неправильно с моей схемой и / или запросом для MySQL, чтобы прибегнуть кtemporary а такжеfilesort? Или это настолько оптимизировано, насколько это возможно, используя ORDER BY?

Ответы на вопрос(3)

Ваш ответ на вопрос