Подтвердить что ты не робот

MySQL объясняет понимание запросов

Я читал в некоторых блогах и в некоторых статьях, связанных с оптимизацией, как оптимизировать запросы. Я прочитал, что мне нужно использовать индексы и убедиться, что все мои первичный ключ и внешние ключи установлены правильно, используя хорошую схему реляционной базы данных.

Теперь у меня есть запрос, который мне нужно оптимизировать, и я получаю его на EXPLAIN:

Using where; Using temporary; Using filesort

Я использую MySQL 5.5

Я знаю, что использую WHERE, но не с моей временной таблицей или файловым телефоном? Что это значит?

4b9b3361

Ответ 1

Использование временных средств означает, что MySQL должен использовать некоторые временные таблицы для хранения промежуточных данных, вычисленных при выполнении вашего запроса.

Использование filesort - это алгоритм сортировки, в котором MySQL не может использовать индекс для сортировки и, следовательно, не может выполнять полную сортировку в памяти. Вместо этого он разбивает сортировку на более мелкие куски, а затем объединяет результаты для получения окончательных отсортированных данных.

Обратитесь к http://dev.mysql.com/doc/refman/5.0/en/explain-output.html.

Я думаю, вы можете использовать ORDER BY плюс некоторые производные таблицы или подзапросы. Было бы замечательно, если бы вы могли вставить свой запрос и соответствующие данные таблиц/индексов и вывод EXPLAIN.

Ответ 2

Синтаксис:

Explain `MySQL Query`

Пример: EXPLAIN SELECT * FROM categoriesG

Пример: EXPLAIN EXTENDED SELECT City.Name FROM City JOIN Country ON (City.CountryCode = Country.Code) WHERE City.CountryCode = 'IND' AND Country.Continent = 'Asia'G

Объяснение следует за запросом mysql

Подробнее об этом подробнее