Описание
MySQL по максимуму. 3-е издание, Шварц Б. купить книга Україна
Обкладинка – м”яка
Рік видання – 2020
Кількість сторінок – 864
ISBN – 978-5-4461-0696-7
Бумага – біла, офсет
Про книгу MySQL по максимуму. 3-е издание, Шварц Б.
Хотите выжать из MySQL максимум возможностей? Вам поможет уникальная книга, написанная экспертами для экспертов.Познакомьтесь с продвинутыми приемами работы с MySQL: разработкой схем, индексов и запросов для настройки сервера, операционной системы и аппаратной части, способами масштабирования приложений и репликацией, балансировкой нагрузки, обеспечением доступности и восстановлением после отказов.Прочитав эту книгу, вы узнаете, почему MySQL устроена именно так, познакомитесь с разбором практичных кейсов, научитесь мыслить на одном языке с вашей базой данных. Бестселлер Шварца, Зайцева и Ткаченко – книга, необходимая любому профессионалу и способная превратить самую страшную “нештатную ситуацию” в легко преодолимый “рабочий момент”.Читайте и совершенствуйтесь!
MySQL по максимуму. 3-е издание, Шварц Б. оглавление
Предисловие
Введение
Структура.книги
Версии.программного.обеспечения.и.их.доступность
Условные.обозначения
О.примерах.кода
Благодарности.к.третьему.изданию
Благодарности.ко.второму.изданию
Благодарности.к.первому.изданию
Глава 1. История.и.архитектура.MySQL
Логическая.архитектура.MySQL
Управление.соединениями.и.их.безопасность
Оптимизация.и.выполнение
Управление.конкурентным.доступом
Блокировки.чтения/записи
Детальность.блокировок
Транзакции
Уровни.изолированности
Взаимоблокировки
Ведение.журнала.транзакций
Транзакции.с.MySQL
Управление.конкурентным.доступом.с.помощью.многоверсионности
Подсистемы.хранения.в.MySQL
Подсистема.хранения.InnoDB
Подсистема.хранения.MyISAM
Другие.встроенные.подсистемы.хранения.данных.MySQL
Подсистемы.хранения.сторонних.разработчиков
Выбор.подходящей.подсистемы.хранения
Преобразования.таблиц
Хронология.MySQL
Модель.развития.MySQL
Итоги.главы
Глава 2
Эталонное.тестирование.MySQL
Зачем.нужно.эталонное.тестирование
Стратегии.эталонного.тестирования
Тактики.эталонного.тестирования
Проектирование.и.планирование.эталонных.тестов
Должно.ли.быть.длительным.эталонное.тестирование?
Фиксация.производительности.и.состояния.системы
Получение.точных.результатов
Прогон.эталонного.теста.и.анализ.результатов
Важность.построения.графика
7Инструменты.эталонного.тестирования
Полностековые.инструменты
Инструменты.покомпонентного.тестирования
Примеры.эталонного.тестирования
http_load
MySQL.Benchmark.Suite
sysbench
Инструмент.dbt2.TPC-C.из.комплекта.Database.Test.Suite
Инструмент.Percona’s.TPCC-MySQL
Итоги.главы
Глава 3. Профилирование.производительности.сервера
Введение.в.оптимизацию.производительности
Оптимизация.с.помощью.профилирования
Интерпретация.профиля
Профилирование.приложения
Профилирование.запросов.MySQL
Профилирование.рабочей.нагрузки.сервера
Профилирование.отдельных.запросов
Использование.профиля.для.оптимизации
Диагностика.редко.возникающих.проблем
Проблемы.одиночного.запроса.или.всего.сервера?
Фиксация.данных.диагностики
Кейс.по.диагностике
Другие.инструменты.профилирования
Таблицы.USER_STATISTICS
Инструмент.strace
Итоги.главы
Глава 4
Оптимизация.схемы.и.типов.данных
Выбор.оптимальных.типов.данных
Целые.числа
Вещественные.числа
Строковые.типы
Типы.Date.и.Time
Битовые.типы.данных
Выбор.идентификаторов
Специальные.типы.данных
Подводные.камни.проектирования.схемы.в.MySQL
Нормализация.и.денормализация
Достоинства.и.недостатки.нормализованной.схемы
Достоинства.и.недостатки.денормализованной.схемы
Сочетание.нормализации.и.денормализации
Кэшированные.и.сводные.таблицы
Материализованные.представления
Таблицы.счетчиков
Ускорение.работы.команды.ALTER.TABLE
Модификация.одного.лишь
frm-файла
Быстрое.построение.индексов.MyISAM
Итоги.главы
8
Глава 5
Повышение.производительности.с.помощью.индексирования
Основы.индексирования
Типы.индексов
Преимущества.индексов
Стратегии.индексирования.для.достижения.высокой.производительности
Изоляция.столбца
Префиксные.индексы.и.селективность.индекса
Многостолбцовые.индексы
Выбор.правильного.порядка.столбцов
Кластерные.индексы
Покрывающие.индексы
Использование.просмотра.индекса.для.сортировки
Упакованные.(сжатые.по.префиксу).индексы
Избыточные.и.дублирующиеся.индексы
Неиспользуемые.индексы
Индексы.и.блокировки
Кейсы.по.индексированию
Поддержка.нескольких.видов.фильтрации
Устранение.дополнительных.условий.поиска.по.диапазону
Оптимизация.сортировки
Обслуживание.индексов.и.таблиц
Поиск.и.исправление.повреждений.таблицы
Обновление.статистики.индекса
Уменьшение.фрагментации.индекса.и.данных
Итоги.главы
Глава 6
Оптимизация.производительности.запросов
Почему.запросы.бывают.медленными
Основная.причина.замедления:.оптимизируйте.доступ.к.данным
Не.запрашиваете.ли.вы.лишние.данные.у.базы?
Не.слишком.ли.много.данных.анализирует.MySQL?
Способы.реструктуризации.запросов
Один.сложный.или.несколько.простых.запросов?
Разбиение.запроса.на.части
Декомпозиция.соединения
Основные.принципы.выполнения.запросов
Клиент-серверный.протокол.MySQL
Кэш.запросов
Процесс.оптимизации.запроса
Подсистема.выполнения.запросов
Возврат.результатов.клиенту
Ограничения.оптимизатора.MySQL
Коррелированные.подзапросы
Ограничения.UNION
Оптимизация.слияния.индексов
Распространение.равенства
Параллельное.выполнение
Хеш-соединения
Непоследовательный.просмотр.индекса
Функции.MIN().и.MAX()
SELECT.и.UPDATE.для.одной.и.той.же.таблицы
9Подсказки.оптимизатору.запросов
Оптимизация.запросов.конкретных.типов
Оптимизация.запросов.с.COUNT()
Оптимизация.запросов.с.JOIN
Оптимизация.подзапросов
Оптимизация.GROUP.BY.и.DISTINCT
Оптимизация.GROUP.BY.WITH.ROLLUP
Оптимизация.LIMIT.и.OFFSET
Оптимизация.SQL_CALC_FOUND_ROWS
Оптимизация.UNION
Статический.анализ.запросов
Переменные,.определяемые.пользователем
Кейс
Построение.таблицы.очередей.в.MySQL
Вычисление.расстояния.между.двумя.точками
Применение.пользовательских.функций
Итоги.главы
Глава 7
Дополнительные.возможности.MySQL
Секционированные.таблицы
Как.работает.секционирование
Типы.секционирования
Как.использовать.секционирование
Что.может.пойти.не.так
Оптимизация.запросов.к.секционированным.таблицам
Объединенные.таблицы
Представления
Обновляемые.представления
Представления.и.производительность
Ограничения.представлений
Ограничения.внешнего.ключа
Хранение.кода.внутри.MySQL
Хранимые.процедуры.и.функции
Триггеры
События
Сохранение.комментариев.в.хранимом.коде
Курсоры
Подготовленные.операторы
Оптимизация.подготовленных.операторов
SQL-интерфейс.для.подготовленных.операторов
Ограничения.подготовленных.операторов
Функции,.определяемые.пользователем
Плагины
Кодировка.и.схемы.упорядочения
Использование.кодировок.в.MySQL
Выбор.кодировки.и.схемы.упорядочения
Как.кодировка.и.схема.упорядочения.влияют.на.запросы
Полнотекстовый.поиск
Полнотекстовые.запросы.на.естественном.языке
Булев.полнотекстовый.поиск
Изменения.в.полнотекстовом.поиске.в.версии.MySQL.5.1
10
Компромиссы.полнотекстового.поиска.и.обходные.пути
Настройка.и.оптимизация.полнотекстового.поиска
Распределенные.транзакции
Внутренние.XA-транзакции
Внешние.XA-транзакции
Кэш.запросов.MySQL
Как.MySQL.проверяет.попадание.в.кэш
Как.кэш.использует.память
Когда.полезен.кэш.запросов
Как.настраивать.и.обслуживать.кэш.запросов
InnoDB.и.кэш.запросов
Общие.оптимизации.кэша.запросов
Альтернативы.кэшу.запросов
Итоги.главы
Глава 8
Оптимизация.параметров.сервера
Основы.конфигурации.MySQL
Синтаксис,.область.видимости.и.динамичность
Побочные.эффекты.установки.переменных
Приступая.к.работе
Итеративная.оптимизация.с.помощью.эталонного.тестирования
Чего.делать.не.следует
Создание.конфигурационного.файла.MySQL
Настройка.использования.памяти
Сколько.памяти.может.использовать.MySQL
Сколько.памяти.нужно.соединению
Резервирование.памяти.для.операционной.системы
Выделение.памяти.для.кэшей
Буферный.пул.InnoDB
Кэш.ключей.MyISAM
Кэш.потоков
Кэш.таблиц
Словарь.данных.InnoDB
Настройка.ввода/вывода.в.MySQL
InnoDB
MyISAM
Настройка.конкурентного.доступа.в.MySQL
InnoDB
MyISAM
Настройка.с.учетом.рабочей.нагрузки
Оптимизация.работы.с.полями.типа.BLOB.и.TEXT
Оптимизация.файловой.сортировки
Завершение.базовой.конфигурации
Настройки.безопасности.и.готовности.к.работе
Дополнительные.настройки.InnoDB
Итоги.главы
Глава 9
Оптимизация.операционной.системы.и.оборудования
Что.ограничивает.производительность.MySQL
Как.выбирать.процессоры.для.MySQL
Что.лучше:.быстрые.процессоры.или.много.процессоров
11Архитектура.ЦП
Масштабирование.на.несколько.процессоров.и.ядер
Поиск.баланса.между.памятью.и.дисками
Произвольный.и.последовательный.ввод/вывод
Кэширование,.чтение.и.запись
Что.такое.рабочее.множество
Определение.эффективного.соотношения.«память.—.диск»
Выбор.жестких.дисков
Твердотельные.хранилища.данных
Обзор.флеш-памяти
Флеш-технологии
Эталонное.тестирование.флеш-памяти
Твердотельные.диски
Устройства.хранения.PCIe
Другие.типы.твердотельных.хранилищ.данных
Когда.стоит.использовать.флеш-устройства
Использование.технологии.Flashcache
Оптимизация.MySQL.для.твердотельных.хранилищ.данных
Выбор.оборудования.для.подчиненного.сервера
Оптимизация.производительности.с.помощью.RAID
Отказ,.восстановление.и.мониторинг.RAID
Выбор.между.аппаратной.и.программной.реализациями.RAID
Конфигурация.RAID.и.кэширование
Сети.хранения.данных.и.сетевые.системы.хранения.данных
Эталонные.тесты.SAN-сетей
Использование.SAN-сетей.через.NFS.или.SMB
Производительность.MySQL.в.SAN
Надо.ли.использовать.SAN
Использование.нескольких.дисковых.томов
Конфигурация.сети
Выбор.операционной.системы
Выбор.файловой.системы
Выбор.планировщика.дисковых.очередей
Многопоточность
Подкачка
Состояние.операционной.системы
Как.интерпретировать.выдачу.vmstat
Как.интерпретировать.выдачу.iostat
Другие.полезные.инструменты
Машина.с.нагруженным.процессором
Машина.с.нагруженной.подсистемой.ввода/вывода
Машина.с.интенсивной.подкачкой
Простаивающая.машина
Итоги.главы
Глава 10
Репликация
Обзор.репликации
Проблемы,.решаемые.репликацией
Как.работает.репликация
Настройка.репликации
Создание.аккаунтов.репликации
12
Конфигурирование.главного.и.подчиненного.серверов
Запуск.подчиненного.сервера
Инициализация.подчиненного.сервера.на.основе.существующего
Рекомендуемая.конфигурация.репликации
Взгляд.на.репликацию.изнутри
Покомандная.репликация
Построчная.репликация
Какая.репликация.лучше,.покомандная.или.построчная
Файлы.репликации
Отправка.событий.репликации.другим.подчиненным.серверам
Фильтры.репликации
Топологии.репликации
Один.главный.сервер.с.несколькими.подчиненными
«Главный.сервер.—.главный.сервер».в.режиме.«активный.—.активный»
«Главный.сервер.—.главный.сервер».в.режиме.«активный.—.пассивный»
«Главный.сервер.—.главный.сервер.с.подчиненными»
Кольцевая.репликация
Главный.сервер,.главный.сервер-распространитель.и.подчиненные
Дерево.или.пирамида
Пользовательские.схемы.репликации
Репликация.и.планирование.производительности
Почему.репликация.не.помогает.масштабированию.записи
Когда.подчиненные.серверы.начнут.отставать
Запланированная.недогрузка
Администрирование.и.обслуживание.репликации
Мониторинг.репликации
Измерение.отставания.подчиненного.сервера
Как.узнать,.согласованы.ли.подчиненные.серверы.с.главным
Восстановление.синхронизации.подчиненного.сервера.с.главным
Смена.главного.сервера
Смена.ролей.в.конфигурации.«главный.сервер.—.главный.сервер»
Проблемы.репликации.и.их.решение
Ошибки,.вызванные.повреждением.или.утратой.данных
Использование.нетранзакционных.таблиц
Смешивание.транзакционных.и.нетранзакционных.таблиц
Недетерминированные.команды
Использование.различных.подсистем.хранения.на.главном
и.подчиненном.серверах
Изменение.данных.на.подчиненном.сервере
Неуникальный.идентификатор.сервера
Неопределенный.идентификатор.сервера
Зависимости.от.нереплицируемых.данных
Отсутствующие.временные.таблицы
Репликация.не.всех.обновлений
Конкуренция,.вызванная.блокировками.при.выполнении.SELECT
в.InnoDB
Запись.на.обоих.главных.серверах.в.конфигурации.«главный.—.главный»
Слишком.большое.отставание.репликации
Чрезмерно.большие.пакеты.от.главного.сервера
Ограниченная.пропускная.способность.сети
13Отсутствие.места.на.диске
Ограничения.репликации
Насколько.быстро.работает.репликация
Расширенные.возможности.репликации.MySQL
Прочие.технологии.репликации
Итоги.главы
Глава 11. Масштабирование.MySQL
Что.такое.масштабируемость
Масштабирование.MySQL
Планирование.масштабируемости
Перед.тем.как.приступать.к.масштабированию
Вертикальное.масштабирование
Масштабирование.по.горизонтали
Масштабирование.с.помощью.консолидации
Масштабирование.кластеризацией
Обратное.масштабирование
Балансирование.нагрузки
Прямое.подключение
Представляем.посредника
Балансирование.нагрузки.при.наличии.одного.главного.и.нескольких
подчиненных.серверов
Итоги.главы
Глава 12
Высокая.доступность
Что.такое.высокая.доступность
Причины.простоев
Достижение.высокой.доступности
Сокращение.среднего.времени.между.отказами
Сокращение.среднего.времени.восстановления
Устранение.отдельных.критических.точек
Разделяемое.хранилище.данных.или.реплицированный.диск
Синхронная.репликация.MySQL
Избыточность.на.основе.репликации
Аварийное.переключение.и.восстановление.после.сбоев
Повышение.подчиненного.сервера,.или.перемена.ролей
Виртуальные.IP-адреса.и.передача.IP-адреса
Решения.на.основе.посредника
Обработка.переключения.на.резерв.при.отказе.на.уровне.приложения
Итоги.главы
Глава 13
MySQL.в.облаке
Достоинства,.недостатки.и.мифы.облака
Экономика.MySQL.в.облаке
Масштабирование.MySQL.и.HA.в.облаке
Четыре.основных.ресурса
Производительность.MySQL.в.облачном.хостинге
База.данных.MySQL.как.услуга
Amazon.RDS
Другие.решения.DBaaS
Итоги.главы
14
Глава 14
Оптимизация.на.уровне.приложения
Типичные.проблемы
Проблемы.веб-сервера
Кэширование
Кэширование.на.уровне.ниже.приложения
Кэширование.на.уровне.приложения
Стратегии.управления.кэшем
Кэширование.иерархий.объектов
Предварительная.генерация.содержимого
Кэш.как.инфраструктурный.компонент
Использование.HandlerSocket.и.доступа.к.memcached
Расширение.MySQL
Альтернативы.MySQL
Итоги.главы
Глава 15
Резервное.копирование.и.восстановление
Зачем.нужно.резервное.копирование
Определение.требований.к.восстановлению
Проектирование.резервного.копирования.в.MySQL
Оперативное.или.автономное.резервное.копирование
Логическое.и.физическое.резервное.копирование
Что.копировать
Подсистемы.хранения.и.согласованность
Репликация
Управление.и.резервное.копирование.двоичных.журналов
Формат.двоичного.журнала
Безопасное.удаление.старых.двоичных.журналов
Резервное.копирование.данных
Снятие.логической.резервной.копии
Снимки.файловой.системы
Восстановление.из.резервной.копии
Восстановление.из.физических.файлов
Восстановление.из.логической.копии
Восстановление.на.конкретный.момент.времени
Более.сложные.методы.восстановления
Восстановление.InnoDB
Инструменты.резервного.копирования.и.восстановления
MySQL.Enterprise.Backup
Percona.XtraBackup
mylvmbackup
Zmanda.Recovery.Manager
mydumper
mysqldump
Скрипты.резервного.копирования
Итоги.главы
Глава 16
Инструменты.для.пользователей.MySQL
Средства.организации.интерфейса
Утилиты.командной.строки
Утилиты.SQL
15Инструменты.мониторинга
Инструменты.мониторинга.с.открытым.исходным.кодом
Коммерческие.системы.мониторинга
Мониторинг.из.командной.строки.с.использованием.Innotop
Итоги.главы
ПриложенияПриложение A. Ветки.и.версии.MySQL
Percona.Server
Maria.DB
Drizzle
Другие.варианты.MySQL
Итоги
Приложение Б. Состояние.сервера.MySQL
Системные.переменные
Команда.SHOW.STATUS
Команда.SHOW.INNODB.STATUS
Команда.SHOW.PROCESSLIST
Команда.SHOW.ENGINE.MUTEX.STATUS
Состояние.репликации
База.данных.INFORMATION_SCHEMA
Performance.Schema
Итоги
Приложение В. Передача.больших.файлов
Копирование.файлов
Эталонные.тесты.копирования.файлов
Приложение Г
Команда.EXPLAIN
Вызов.команды.EXPLAIN
Столбцы.результата.команды.EXPLAIN
Вывод.плана.выполнения.в.виде.дерева
Улучшения.в.версии.MySQL.5.6
Приложение Д. Отладка.блокировок
Ожидание.блокировки.на.уровне.сервера
Ожидание.блокировки.в.InnoDB
Приложение Е. Использование.Sphinx.совместно.с.MySQL
Типичный.поиск.с.помощью.Sphinx
Зачем.использовать.Sphinx
Обзор.архитектуры
Специальные.возможности
Примеры.практической.реализации
Итоги
Отзывы
Отзывов пока нет.