Внимание!!!! Книга удалена по требованию
правообладателя!!!!
Отзывы о книге....15
Предисловие....16
Введение....18
Для кого эта книга....18
Новое в этом издании....19
Используемые в книге соглашения....20
Благодарности к четвертому изданию....21
От Сильвии....21
От Джереми....22
Спасибо рецензентам....22
От издательства....23
Глава 1. Архитектура MySQL....24
Логическая архитектура MySQL....24
Управление соединениями и их безопасность....25
Оптимизация и исполнение....26
Управление конкурентным доступом....27
Блокировки чтения/записи....27
Гранулярность блокировок....28
Транзакции....30
Уровни изолированности....32
Взаимоблокировки....34
Ведение журнала транзакций....35
Транзакции в MySQL....35
Управление конкурентным доступом с помощью многоверсионности....38
Репликация....40
Структура файлов данных....41
Подсистема хранения InnoDB....41
Поддержка JSON-документов....43
Изменения словаря данных....43
Атомарный DDL....43
Резюме....44
Глава 2. Мониторинг в мире проектирования надежности....45
Влияние проектирования надежности на DBA группы....46
Определение целей уровня обслуживания....47
Что нужно, чтобы клиенты были довольны?....49
Что измерять....50
Определение SLI и SLO....50
Решения для мониторинга....51
Мониторинг доступности....53
Мониторинг задержки запросов....55
Мониторинг ошибок....56
Проактивный мониторинг....57
Измерение долгосрочной эффективности....66
Изучение вашего делового ритма....66
Эффективное отслеживание показателей....67
Применение инструментов мониторинга для контроля производительности....68
Использование SLO для управления общей архитектурой....69
Резюме....70
Глава 3. Performance Schema....71
Введение в Performance Schema....71
Список инструментов....72
Организация потребителей....74
Потребление ресурсов....75
Ограничения....76
Схема sys....77
Кратко о потоках....77
Конфигурация....78
Включение и отключение Performance Schema....79
Включение и отключение инструментов....79
Включение и отключение потребителей....81
Настройка мониторинга для конкретных объектов....82
Настройка мониторинга потоков....82
Настройка размера памяти для Performance Schema....84
Значения по умолчанию....84
Использование Performance Schema....85
Анализ операторов SQL....85
Анализ производительности чтения и записи....95
Анализ блокировок метаданных....96
Анализ использования памяти....97
Анализ переменных....100
Анализ наиболее частых ошибок....103
Анализ самой Performance Schema....104
Резюме....107
Глава 4. Оптимизация операционной системы и оборудования....108
Что ограничивает производительность MySQL....108
Как выбрать процессоры для MySQL....109
Балансировка памяти и дисковых ресурсов....109
Кэширование, чтение и запись....110
Каково ваше рабочее множество....111
Твердотельные хранилища данных....111
Обзор флеш-памяти....112
Сборка мусора....113
Оптимизация производительности с помощью RAID....113
Отказ, восстановление и мониторинг RAID....116
Конфигурация RAID и кэширование....118
Конфигурация сети....122
Выбор файловой системы....123
Выбор планировщика дисковых очередей....126
Память и подкачка....127
Состояние операционной системы....129
Резюме....134
Глава 5. Оптимизация настроек сервера....136
Основы конфигурации MySQL....137
Синтаксис, область видимости и динамичность....139
Сохраняемые системные переменные....140
Побочные эффекты установки переменных....141
Планирование изменений ваших переменных....142
Чего делать не следует....143
Создание конфигурационного файла MySQL....145
Минимальная конфигурация....145
Проверка переменных состояния сервера MySQL....147
Настройка использования памяти....148
Сколько памяти нужно для соединения....148
Резервирование памяти для операционной системы....149
Буферный пул InnoDB....149
Кэш потоков....150
Настройка ввода/вывода в MySQL....151
Журнал транзакций InnoDB....153
Буфер журнала....154
Табличное пространство InnoDB....156
Прочие параметры настройки ввода/вывода....160
Настройка конкурентного доступа в MySQL....160
Настройки безопасности....162
Дополнительные настройки InnoDB....165
Резюме....167
Глава 6. Разработка схемы и управление....168
Выбор оптимальных типов данных....169
Целые числа....170
Вещественные числа....171
Строковые типы....172
Типы Date и Time....178
Битовые типы данных....180
JSON данные....182
Выбор идентификаторов....186
Специальные типы данных....189
Подводные камни проектирования схемы в MySQL....189
Слишком много столбцов....189
Слишком много соединений....190
Всемогущий тип ENUM....190
Замаскированный тип ENUM....190
NULL изобрели не здесь....190
Управление схемой....191
Управление схемой как часть платформы хранения данных....191
Резюме....200
Глава 7. Повышение производительности с помощью индексирования....201
Основы индексирования....202
Типы индексов....203
Преимущества индексов....208
Стратегии индексирования для достижения производительности....209
Префиксные индексы и селективность индексов....209
Многостолбцовые индексы....213
Выбор правильного порядка столбцов....215
Кластерные индексы....219
Покрывающие индексы....227
Использование сканирования индекса для сортировки....229
Избыточные и дублирующиеся индексы....232
Неиспользуемые индексы....235
Обслуживание индексов и таблиц....236
Поиск и исправление повреждений таблицы....236
Обновление статистики индекса....237
Уменьшение фрагментации индекса и данных....239
Резюме....240
Глава 8. Оптимизация производительности запросов....242
Почему запросы бывают медленными....243
Основная причина медленных запросов — оптимизация доступа к данным....243
Не запрашиваете ли вы лишние данные у базы?....244
Не слишком ли много данных анализирует MySQL?....245
Способы реструктуризации запросов....250
Один сложный или несколько простых запросов....251
Разбиение запроса на части....252
Декомпозиция соединения....252
Основные принципы выполнения запросов....254
Клиент-серверный протокол MySQL....255
Состояния запроса....257
Процесс оптимизации запроса....258
Подсистема выполнения запросов....273
Возврат результатов клиенту....274
Ограничения оптимизатора запросов MySQL....274
Ограничения UNION....274
Распространение равенства....275
Параллельное выполнение....276
SELECT и UPDATE для одной и той же таблицы....276
Оптимизация конкретных типов запросов....277
Оптимизация запросов COUNT()....277
Оптимизация запросов с JOIN....279
Оптимизация GROUP ВУ WIТH ROLLUP....280
Оптимизация LIMIT и OFFSET....280
Оптимизация SQL_CALC_FOUND_ROWS....282
Оптимизация UNION....283
Резюме....283
Глава 9. Репликация....284
Обзор репликации....284
Как работает репликация....286
Взгляд на репликацию изнутри....287
Выбор формата репликации....287
Глобальные идентификаторы транзакций....289
Обеспечение безопасности при сбоях репликации....290
Отложенная репликация....291
Многопоточная репликация....292
Полусинхронная репликация....295
Фильтры репликации....296
Отказоустойчивость репликации....298
Запланированные повышения....298
Незапланированные повышения....299
Компромиссы повышения....300
Топологии репликации....300
Активный/пассивный....300
Активный/пул чтения....302
Нерекомендуемые топологии....304
Администрирование и обслуживание репликации....308
Мониторинг репликации....308
Измерение отставания репликации....309
Как определить, согласованы ли реплики с источником....310
Проблемы с репликацией и их решения....311
Повреждение двоичных журналов в источнике....312
Неуникальные идентификаторы серверов....312
Неопределенные идентификаторы серверов....312
Отсутствующие временные таблицы....313
Репликация не всех обновлений....313
Слишком большое отставание репликации....314
Чрезмерно большие пакеты от источника....315
Отсутствие места на диске....315
Ограничения репликации....315
Резюме....316
Глава 10. Резервное копирование и восстановление....317
Зачем нужно резервное копирование....319
Определение требований к восстановлению....319
Проектирование решения для резервного копирования MySQL....321
Оперативное или автономное резервное копирование?....323
Логическое и физическое резервное копирование....324
Что нужно копировать....327
Инкрементное и дифференциальное резервное копирование....328
Репликация....330
Управление двоичными журналами и их резервное копирование....331
Инструменты резервного копирования и восстановления....332
MySQL Enterprise Backup....333
Percona XtraBackup....333
mydumper....333
mysqldump....334
Резервное копирование данных....334
Логические SQL-дампы....334
Снимки файловой системы....336
Percona XtraBackup....343
Восстановление из резервной копии....347
Восстановление логических резервных копий....348
Восстановление физических файлов из моментального снимка....350
Восстановление с помощью Percona XtraBackup....351
Запуск MySQL после восстановления физических файлов....352
Резюме....353
Глава 11. Масштабирование MySQL....355
Что такое масштабируемость....355
Рабочие нагрузки, связанные с чтением и записью....357
Знание рабочей нагрузки....358
Рабочие нагрузки, связанные с чтением....359
Рабочие нагрузки, связанные с записью....359
Функциональное сегментирование....360
Масштабирование чтения с помощью пулов чтения....361
Управление конфигурацией пулов чтения....364
Проверки работоспособности пулов чтения....365
Выбор алгоритма балансировки нагрузки....366
Очередь....368
Масштабирование операций записи с помощью шардирования....369
Выбор схемы сегментирования....370
Несколько ключей сегментирования....372
Запросы в разных шардах....373
Vitess....374
ProxySQL....378
Резюме....383
Глава 12. MySQL в облаке....384
Управляемая MySQL....384
Amazon Aurora для MySQL....385
GCP Cloud SQL....388
MySQL на виртуальных машинах....389
Типы машин в облаке....390
Выбор правильного типа машины....390
Выбор правильного типа диска....392
Дополнительные советы....394
Резюме....397
Глава 13. Соответствие MySQL нормативным требованиям....398
Что такое соответствие....399
Элементы контроля сервисной организацией типа 2....399
Закон Сарбейнса — Оксли....399
Стандарт безопасности данных индустрии платежных карт....400
Закон о переносимости и подотчетности медицинского страхования....400
Федеральная программа управления рисками и авторизацией....401
Общий регламент по защите данных....401
Schrems II....401
Выстраивание контроля за соблюдением нормативных требований....402
Управление секретами....403
Разделение ролей и данных....406
Отслеживание изменений....407
Процедуры резервного копирования и восстановления....415
Резюме....417
Приложение А. Обновление MySQL....419
Зачем обновлять версию?....419
Жизненный цикл обновления....420
Тестирование обновлений....421
Тестирование среды разработки....421
Копия производственных данных....422
Реплика....422
Инструментарий....422
Масштабное обновление....422
Резюме....424
Приложение Б. MySQL на Kubernetes....425
Предоставление ресурсов с помощью Kubernetes....425
Тщательно определите свою цель....426
Выберите плоскость управления....426
Более тонкие детали....426
Резюме....428
Об авторах....429
Иллюстрация на обложке....430
Хотите выжать из MySQL максимум возможностей? Вам поможет уникальная книга, написанная экспертами для экспертов.Пора изучать лучшие практики, начиная с постановки целей уровня обслуживания, проектирования схем, индексов, запросов и заканчивая настройкой вашего сервера, операционной системы и оборудования, чтобы реализовать потенциал вашей платформы по максимуму. Администраторы баз данных научатся безопасным и практичным способам масштабирования приложений с помощью репликации, балансировки нагрузки, высокой доступности и отказоустойчивости.Это издание было обновлено и переработано с учетом последних достижений в области облачного и самостоятельного хостинга MySQL, производительности InnoDB, а также новых функций и инструментов. Вы сможете разработать платформу реляционных данных, которая будет масштабироваться вместе с вашим бизнесом, и узнаете о передовых методах обеспечения безопасности, производительности и стабильности баз данных.