Оптимизация в MySQL


Содержание

Обзор оптимизации
Конструктивные ограничения MySQL/компромиссы
Вопросы переносимости
Для чего мы использовали MySQL?
Набор тестов MySQL (The MySQL Benchmark Suite)
Использование собственных тестов
Оптимизация SELECT и других запросов
Синтаксис оператора EXPLAIN (получение информации о SELECT)
Оценка производительности запроса
Скорость выполнения запросов SELECT
Как MySQL оптимизирует выражения WHERE
Как MySQL оптимизирует DISTINCT
Как MySQL оптимизирует LEFT JOIN и RIGHT JOIN
Как MySQL оптимизирует ORDER BY
Как MySQL оптимизирует LIMIT
Скорость выполнения запросов INSERT
Скорость выполнения запросов UPDATE
Скорость выполнения запросов DELETE
Другие советы по оптимизации
Вопросы блокировок
Как MySQL блокирует таблицы
Вопросы блокирования таблиц
Оптимизация структуры базы данных
Конструктивные особенности MySQL
Сделайте объем данных как можно меньше
Использование индексов в MySQL
Индексы столбцов
Многостолбцовые индексы
Почему так много открытых таблиц?
Открытие и закрытие таблиц в MySQL
Недостатки создания множества таблиц в одной базе данных
Оптимизация сервера MySQL
Настройка параметров системы, компляции и запуска
Настройка параметров сервера
Как компиляция и линкование влияет на скорость MySQL
Как MySQL использует память
Как MySQL использует DNS
Синтаксис команды SET
Вопросы, относящиеся к диску
Использование символических ссылок

Оптимизация - сложная задача, потому что она, в конечном счете, требует понимания системы в целом. В отдельных случаях для выполнения локальной оптимизации достаточно знать систему или приложение не в полном объеме, однако чтобы сделать систему более оптимальной, нужно разбираться в том, как она устроена.

В этой главе будут рассмотрены различные способы оптимизации MySQL и представлены некоторые примеры ее выполнения. Не следует забывать, однако, что всегда можно найти некоторые дополнительные возможности сделать систему еще быстрее (хотя каждый следующий шаг в этом направлении будет даваться все труднее и труднее).