Предисловие 9
Введение
Глава 1. Архитектура MySQL
Логическая архитектура MySQL
Управление конкурентным доступом
Транзакции
Многоверсионное управление конкурентным доступом (MVCC)
Подсистемы хранения в MySQL
Глава 2. Поиск узких мест: эталонное тестирование и профилирование
Почему нужно тестировать производительность?
Стратегии эталонного тестирования
Тактики эталонного тестирования
Инструменты эталонного тестирования
Примеры эталонного тестирования
Профилирование
Профилирование операционной системы
Глава 3. Оптимизация схемы и индексирование
Выбор оптимальных типов данных
Основы индексирования
Стратегии индексирования для достижения высокой производительности
Практические примеры индексирования
Обслуживание индексов и таблиц
Нормализация и денормализация
Ускорение работы команды ALTER TABLE
Замечания о подсистемах хранения
Глава 4. Оптимизация запросов
Основная причина замедления: оптимизируйте доступ к данным
Способы реструктуризации запросов
Основные принципы выполнения запросов
Ограничения оптимизатора MySQL
Оптимизация запросов конкретных типов
Подсказки оптимизатору запросов
Переменные, определяемые пользователем
Глава 5. Дополнительные средства MySQL
Кэш запросов MySQL
Хранение кода внутри MySQL
Курсоры
Подготовленные команды
Определяемые пользователем функции
Представления
Кодировки и схемы упорядочения
Полнотекстовый поиск
Ограничения внешнего ключа
Объединенные таблицы и секционирование
Распределенные (XA) транзакции
Глава 6. Оптимизация параметров сервера
Основы конфигурирования
Общие принципы настройки
Настройка ввода­вывода в MySQL
Настройка конкурентного доступа в MySQL
Настройка с учетом рабочей нагрузки
Настройка параметров уровня соединения
Глава 7. Оптимизация операционной системы и оборудования
Что ограничивает производительность MySQL?
Как выбирать процессор для MySQL
Поиск баланса между памятью и дисками
Выбор оборудования для подчиненного сервера
Оптимизация производительности с помощью RAID
Сети хранения данных и сетевые системы хранения данных
Использование нескольких дисковых томов
Конфигурация сети
Выбор операционной системы
Выбор файловой системы
Многопоточность
Свопинг
Состояние операционной системы
Глава 8. Репликация
Обзор репликации
Настройка репликации
Взгляд на репликацию изнутри
Топологии репликации
Репликация и планирование пропускной способности
Администрирование и обслуживание репликации
Проблемы репликации и их решение
Насколько быстро работает репликация?
Перспективы репликации в MySQL
Глава 9. Масштабирование и высокая доступность
Терминология
Масштабирование MySQL
Балансирование нагрузки
Высокая доступность
Глава 10. Оптимизация на уровне приложения
Общие сведения о производительности приложений
Проблемы веб­сервера
Кэширование
Расширение MySQL
Альтернативы MySQL
Глава 11. Резервное копирование и восстановление
Обзор
Проблемы выбора
Резервное копирование двоичных журналов
Резервное копирование данных
Восстановление из резервной копии
Скорость резервного копирования и восстановления
Инструменты резервного копирования
Сценарии резервного копирования
Глава 12. Безопасность
Терминология
Основы учетных записей
Безопасность на уровне операционной системы
Безопасность на уровне сети
Шифрование данных
MySQL в окружении с измененным корневым каталогом
Глава 13. Состояние сервера MySQL
Системные переменные
Команда SHOW STATUS
Команда SHOW INNODB STATUS
Команда SHOW PROCESSLIST
Команда SHOW MUTEX STATUS
Состояние репликации
База данных INFORMATION_SCHEMA
Глава 14. Инструменты для оптимизации производительности
Средства организации интерфейса
Инструменты мониторинга
Инструменты анализа
Утилиты MySQL
Источники дополнительной информации
Приложение A. Передача больших файлов
Приложение B. Команда EXPLAIN
Приложение С. Использование Sphinx в сочетании с MySQL
Приложение D. Отладка блокировок
Алфавитный указатель