Справочное руководство по MySQL версии 4.0.11-gamma



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

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

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

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

5.1 Oбзор оптимизации
5.1.1 Конструктивные ограничения MySQL/компромиссы
5.1.2 Вопросы переносимости
5.1.3 Для чего мы использовали MySQL?
5.1.4 Набор тестов MySQL (The MySQL Benchmark Suite)
5.1.5 Использование собственных тестов

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 Другие советы по оптимизации

5.3 Вопросы блокировок
5.3.1 Как MySQL блокирует таблицы
5.3.2 Вопросы блокирования таблиц

5.4 Оптимизация структуры базы данных
5.4.1 Конструктивные особенности MySQL
5.4.2 Сделайте объем данных как можно меньше
5.4.3 Использование индексов в MySQL
5.4.4 Индексы столбцов
5.4.5 Многостолбцовые индексы
5.4.6 Почему так много открытых таблиц?
5.4.7 Открытие и закрытие таблиц в MySQL
5.4.8 Недостатки создания множества таблиц в одной базе данных

5.5 Оптимизация сервера MySQL
5.5.1 Настройка параметров системы, компляции и запуска
5.5.2 Настройка параметров сервера
5.5.3 Как компиляция и линкование влияет на скорость MySQL
5.5.4 Как MySQL использует память
5.5.5 Как MySQL использует DNS
5.5.6 Синтаксис команды SET

5.6 Вопросы, относящиеся к диску
5.6.1 Использование символических ссылок
5.6.1.1 Использование символических ссылок для баз данных
5.6.1.2 Использование символических ссылок для таблиц