Топ 1000 способов увеличения производительности SQL (часть 1)

myadsПоэтапно буду переводить (на сколько позволяет время) и выкладывать перевод : Top 1000 SQL Performance Tips.

Специфические способы влияющие на производительность:

  1. Использование EXPLAIN для создания плана выполнения запроса;
  2. Использование Slow Query Log <http://dev.mysql.com/doc/refman/5.0/en/slow-query-log.>
  3. Не используйте DISTINCT, когда Вы уже спользовали или собираетель использовать GROUP BY;
  4. Производительность INSERT: Партия INSERT and REPLACE; Использование LOAD DATA вместо INSERT;
  5. LIMIT m,n не так сильно влияет на скорость как говорят;
  6. Не используйте ORDER BY RAND (), если у Вас более 2000 записей;
  7. Используйте _NO_CACHE, когда Вы вебираете часто обновляемые данные или большие наборы данных;
  8. Избегите использование символов подстановки в начале LIKE запросов;
    Избегите коррелированных подзапросов и в select и where;
  9. Никакие расчетные сравнения — не изолируют внесенные в указатель колонки;
  10. ORDER BY и LIMIT работают лучше всего с равенствами и «покрытые» индексами;
  11. Отделяйте text/blobs от metadata, и не помещайте text/blobs в результаты, если Вы не нуждаетесь в них;
  12. Полученные таблицы могут быть полезными для восстановления BLOB, не сортируя их;
    ALTER TABLE...ORDER BY может взять данные, сортированные хронологически, и повторно заказать это различной областью — это может заставить вопросы на той области бежать быстрее (возможно, это входит в индексацию?);
  13. Знайте, когда разбить сложный вопрос и присоединиться к меньшим;
  14. Удалите за один раз небольшое количество данных, если Вы можете;
  15. Делайте подобные последовательными, таким образом кеш используется;
  16. Соблюлюдайте правельные стандарты запроса SQL;
  17. Не используйте лишние функцие и параметры;
  18. Использование OR на многократных областях индекса (<5.0) в UNION может ускорить запрос (с LIMIT);
  19. Не используйте COUNT * в таблицах для каждого поиска;
  20. При использовании INSERT ... ON DUPLICATE KEY update (INSERT IGNORE) избегайте использоние SELECT;
  21. Максимально используйте groupwise вместо подзапросов;

Для первой части всё...

Запись навигация

Top