5.2. Оптимизация SELECT и других запросов
- 5.2.1. Синтаксис оператора EXPLAIN (получение информации о SELECT)
- 5.2.2. Оценка производительности запроса
- 5.2.3. Скорость выполнения запросов SELECT
- 5.2.4. Как MySQL оптимизирует выражения WHERE
- 5.2.5. Как MySQL оптимизирует DISTINCT
- 5.2.6. Как MySQL оптимизирует LEFT JOIN и RIGHT JOIN
- 5.2.7. Как MySQL оптимизирует ORDER BY
- 5.2.8. Как MySQL оптимизирует LIMIT
- 5.2.9. Скорость выполнения запросов INSERT
- 5.2.10. Скорость выполнения запросов UPDATE
- 5.2.11. Скорость выполнения запросов DELETE
- 5.2.12. Другие советы по оптимизации
Сначала приведем одно правило, касающееся всех запросов: Чем сложнее ваша система привилений, тем больше издержек.
Если не было выполнено никаких операторов GRANT , MySQL каким-то образом будет оптимизировать проверку полномочий. Таким образом при наличии очень большого объема данных лучше, наверное, будет работать без привилегий. В противном случае при большом количестве полномочий проверка результатов будет происходить с увеличенными издержками.
Если проблема состоит в некоторой явной функции MySQL, всегда можно протестировать ее в клиенте:
mysql> SELECT BENCHMARK(1000000,1+1);
+------------------------+
| BENCHMARK(1000000,1+1) |
+------------------------+
| 0 |
+------------------------+
1 row in set (0.32 sec)
Из приведенного выше примера видно, что MySQL может выполнять более 1000000 операций сложения за 0,32 секунды на PentiumII 400MHz.
Все функции MySQL достаточно хорошо оптимизированы, но могут попадаться некоторые исключения, и функция BENCHMARK(число_циклов,выражение) - хороший инструмент для выяснения, присутствует ли проблема в запросе.
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|