Современный MySQL 8
Copyright © 2019 Packt Publishing
![]() |
Данный документ предоставляется по лицензии Creative Commons Attribution 3.0 License, за исключением разделов со специальными оговорками. |
Первая редакция на английском языке: Январь 2019
Ссылка на продукт: 1310119
Все права защищены. Никакая часть этой книги не может быть воспроизведена, сохранена в поисковой системе или передана в любой форме или любыми средствами без предварительного письменного разрешения издателя, за исключением случаев кратких цитат, встроенных в критические статьи и обзоры.
При подготовке этой книги были предприняты все усилия чтобы гарантировать точность представленной информации. Тем не менее, информация, содержащаяся в этой книге, продаётся без гарантии в явном или неявном виде. Ни авторы, ни Packt Publishing, ни их дилеры и дистрибьюторы не будут нести ответственность за любые убытки, вызванные или предположительно вызванные прямо или косвенно этой книгой.
Packt Publishing пыталась предоставить информацию о товарных знаках обо всех компаниях и продуктов, упомянутых в данной книге для надлежащего использования капиталов. Тем не менее, Packt Publishing не может гарантировать точность этой информации.
Опубликовано Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK
ISBN 978-1-78883-444-5
2019-02-23
- Авторы
- Эрик Вайниер
- Бирджу Шах
- Теджасви Мэйлирэйти
- Редактор выпуска
- Правин Дхандре
- Редактор приобретения
- Намрэйта Пэтил
- Редактор разработки содержания
- Крис Де-круз
- Технический редактор
- Найлиш Сэйвакхади
- Литературный редактор
- Safis Editing
- Координатор проекта
- Намрэйта Свита
- Корректор
- Safis Editing
- Составитель указателя
- Марьяммал Четьяр
- Графика
- Джиша Чирайил
- Координатор производства
- Найлиш Моухайт
Эрик Вайниер один из немногих администраторов баз данных в мире, специализирующийся на производительности MySQL и являющийся экспертом по крупным архитектурам, таким как Air Miles, Cogeco, McGill University, Bombardier Aerospace и многим иным. Будучи старшим администратором баз данных и инструктором на протяжении 18 лет он имеет опыт в области производительности и устранения неполадок в десятках систем MySQL наивысшего уровня, включая сложные кластерные системы.
Я бы хотел поблагодарить свою жену, Сию, которая помогала в редактировании данной книги, а также за её поддержку.
Бирджу Шах является главным архитектором Endurance International Group. Он получил степень бакалавра по вычислительной технике в университете Гуджаратаю Он обладает опытом и знаниями относительно создания масштабируемых продуктов размещения доменов. Он увлечён новейшими архитектурными шаблонами, инструментами и технологиями и помогает организациям придерживаться наилучших практических приёмов. Он также увлекается техническим обучением и сеансами.
Я бы хотел выразить благодарность своему отцу, Бхупедре Шаху, матери, Шиле Шах и своей жене, Чираги Щах, а также своему милому пирожочку, Дхане Шах, за их помощь и постоянную поддержку. Я также хотел бы поблагодарить своих друзей Джинеша Равала, Гоупала Роухару, Раджива Сэйху и Арнава Чаудхри за их поддержку и руководство. Особая благодарность Али и Крису за их постоянное сопровождение и всю команду Packt за предоставленную мне возможность внести вклад в несколько глав моей самой первой книги.
Теджасви Мэйлирэйти является ведущим техническим специалистом Cassandra для Target. Он сыграл важную роль в разработке и создании индивидуальных интеграций Cassandra, включая веб- интерфейс платформы проверки данных между Oracle и Cassandra. Теджасви получил степень магистра информатики университета Нью- Мексико и степень бакалавра в области электроники и связи в Технологичеком университете имени Джавахарлала Неру в Индии. Он увлечён выявлением и анализом шаблонов данных в наборах данных с приминением R, Python, Spark, Cassandra и MySQL.
Я бы хотел поблагодарить свою семью, друзей и команду за их постоянную поддержку и поощрение к завершению своей второй книги.
Картхик П.Р. является основателем/ генеральным директором Mydbops. Он консультант по базам данных MySQL с большим опытом работы с MySQL. Он и его команда представляют консультации по MySQL некоторым крупнейшим интернет- компаниям. До создания Mydbops он работал в Yahoo! в качестве ведущего администратора MySQL. Картхик активный спикер и блоггер в сообществе MySQL.
Он также выступал рецензентом MariaDB High Performance Пьера Мавро и Getting Started with MariaDB Дэниэла Бартоламью, которые обе были изданы в Packt Publishing.
- Предисловие
- Глава 1. Введение
- Глава 2. Новые свойства MySQL 8
- Глобальный словарь данных
- Поддержка ролей и истории MySQL 8
- MySQL 8 поддерживает создание и управление группами ресурсов и полномочиями
- Расширения InnoDB
- JSON улучшает функциональность
- Невидимые индексы оптимизатора MySQL
- Устаревшие свойства в MySQL 8.0
- Быстро просмотрим свойства, удалённые из MySQL 8.0
- Выводы
- Глава 3. Индексация ваших данных для Высокой производительности
- Как размышляет оптимизатор MySQL в MySQL 8.0?
- Планирование элемента
- Какой вид данных мне следует рассматривать подлежащими индексации в первую очередь и почему?
- Зачем мне требуется хорошая стратегия индексации?
- Какое воздействие оказывает индексация на производительность MySQL?
- Как отображать и анализировать структуру таблицы?
- Как действенно считывать планы исполнения запроса MySQL?
- Как понять что нужно создать некий индекс
- Сопоставление индекса множества столбцов и множества индексов
- Как организовывать ваши стобцы при индексации для хорошей производительности
- Хитрости и технические приёмы
- Выводы
- Глава 4. Современные технологии данных для Больших запросов
- Наиболее важными переменными являются указатели полномасштабного сканирования
- Секционирование таблиц
- Управление разделами
- Применение разделов
- Избавление от неиспользуемых и дублирующих индексов
- Наиболее важные оптимизации запроса
- Временные таблицы
- Пример 1 - некий образец того как оптимизировать сложный запрос
- Пример 2 - как оптимизировать индексы сортировки
- Хитрости и технические приёмы
- Выводы
- Глава 5. Словарь данных MySQL в MySQL 8.0
- Глава 6. Установки сервера MySQL
- Начинаем с наиболее значимых переменных
- Оптимизация сервера MySQL
- Управление имеющимися типами данных изменяет операции
- Включение функции индексации адаптивного хэширования
- Установка предела на общее число одновременных потоков
- Управление количеством предварительных загрузок InnoDB
- Увеличение имеющегося числа потоков фонового режима
- Управление производительностью ввода/ вывода InnoDB в фоновом режиме
- Получение преимуществ от ЦПУ с множеством ядер
- Предотвращение пунктуальных операций
- Настройка общего числа и размера экземпляров
- Буферный пул InnoDB
- Кэширование потока
- Хитрости и технические приёмы
- Выводы
- Глава 7. Групповые репликации в MySQL 8.0
- Высокая доступность и её требования
- Репликация
- Групповая репликация
- Обзор репликации базы данных MySQL
- Архитектура групповой репликации MySQL
- Ограничения групповой репликации
- Безопасность групповой репликации
- Операции в группе реального времени
- Выводы
- Глава 8. Кластер InnoDB в MySQL 8.0
- Глава 9. Мониторинг ваших больших распределённых баз данных
- Глава 10. Аутентификация и управление безопасностью в MySQL 8.0
- Функциональность безопасности MySQL 8.0
- Предоставляемые MySQL 8.0 права
- Где хранятся права в MySQL 8.0?
- Отличия между динамическими и статическими правами
- Создание ролей и пользователей в MySQL 8.0
- Отображение назначенных ролей при помощи SHOW GRANTS
- Устранение проблем со связью
- Хитрости и технические приёмы
- Выводы
- Глава 11. Продвинутые хитрости и технические приёмы производительности MySQL
- Хитрости/ наилучшая практика
- Оптимизация ваших запросов для имеющегося кэширования запроса
- EXPLAIN ваших запросов SELECT
- LIMIT 1 при получении уникальной строки
- Индексация полей поиска
- Индексация стратегий для Joins
- Избегаем SELECT * и COUNT *
- Почти всегда иметь поле некого идентификатора
- Применение ENUM над VARCHAR
- Использование предварительно подготовленных операторов когда и если это возможно
- Расщепление больших запросов DELETE или INSERT
- Избегаем триггера удаления
- Технические приёмы
- Может ли мой MySQL выполнять запросы на миллиардах строк?
- Является ли InnoDB правильным выбором для многих миллиардов строк?
- Насколько большой может быть некая база данных MySQL прежде чем наступит деградация производительности?
- Почему MySQL может быть медленной с большими таблицами?
- Является ли MySQL наилучшим решением для обработки blob?
- Выводы
- Указатель
MySQL применяют для доступа к своим корпоративным базам данных по всему миру как мелкие так и крупные компании. Advanced MySQL 8 станет вашим универсальным руководством по внедрению и управлению крупномасштабными распределёнными кластерами MySQL для работы с веб сайтами больших объёмов, системами корпоративного уровня и коробочного программного обеспечения.
Этак книга подойдёт администраторам баз данных, архитекторам данных и всем, кото хочет получить развитие в разработке приложений баз данных в среде MySQL.
Глава 1. Введение проводит по тем изменениям, которые имели место в MySQL 8 по сравнению с её предыдущими версиями. Мы также изучим что именно делает MySQL 8 базой данных следующего поколения, а также обсудим её проектирование на уровне архитектуры.
Глава 2. Новые свойства MySQL 8 не только рассматривает все новые, привлекательные свойства MySQL 8.0, но также рассматривает устаревшие и удалённые функциональности.
Глава 3. Индексация ваших данных для Высокой производительности, объясняет как оптимизировать производительность MySQL путём применения индексов и планов Исполнения запросов на примерах. Оптимизация вовлекает хорошее понимание Оптимизатора MySQL, стратегии индексации и основательные знания того как индексация и запросы работают сообща.
Глава 4. Современные технологии данных для Больших запросов, объясняет как анализировать и оптимизировать большие запросы MySQL, а также охватывает различные советы и технические приёмы. Мы также рассмотрим основное понятие секционирования ваших данных и глубже погрузимся в него.
Глава 5. Словарь данных MySQL в MySQL 8.0, поясняет как получать оптимальные настройки сервера MySQL 8.0 и как работать со словарём данных MySQL, а также охватывает имеющиеся ограничения словаря данных.
Глава 6. Установки сервера MySQL, поясняет как достигать оптимальной настройки сервера MySQL 8.0. Мы также поработаем в двумя примерами, которые сосредоточены на тех сценариях, когда MySQL потребляет более 100% ЦПУ и когда MySQL пользуется дисковой подкачкой.
Глава 7. Групповые репликации в MySQL 8.0 сосредотачивается на важной теме: высокой доступности. С помощью данной функциональности мы обладаем возможностью создавать очень мощную, надёжную и обладающую высокой доступностью инфраструктуру репликаций.
Глава 8. Кластер InnoDB в MySQL 8.0 объясняет чем является кластер InnoDB и его требования. Мы изучим как его создавать и как им управлять. Мы изучим ограничения InnoDB и ознакомимся с их механизмами хранения.
Глава 9. Мониторинг ваших больших распределённых баз данных объясняет и сопоставляет три топовых инструментария мониторинга для больших распределённых баз данных, которыми являются MONYOG, Datadog и Navicat.
Глава 10. Аутентификация и управление безопасностью в MySQL 8.0 ознакомит с различиями между динамическими и статическими полномочиями, а также с неким обзором таблицы предоставления полномочий. Мы увидим как выявлять и устранять проблемы соединений и поделимся некоторыми хитростями и техническими приёмами.
Глава 11. Продвинутые хитрости и технические приёмы производительности MySQL охватывает примеры шаблонов и н их противоположности для MySQL и различные способы расширения и оптимизации имеющейся производительности некоей базы данных следуя решениям для наиболее часто задаваемых вопросов.
Требуется искренний интерес к SQL, который поспособствует освоению MySQL 8. Если вы увлечены анализом, оптимизацией и изощрёнными запросами данных, вам станет намного проще перейти на следующий уровень!
Некоторые примеры, отображаемые в данной книге, применяют наборы данных, которые не могут публично распространяться. В таких случаях вы можете воспроизводить эти примеры при помощи аналогичных типов наборов данных.
Мы дополнительно снабжаем вас файлом PDF, который содержит цветные изображения экранных снимков/ схем, использованных в данной книге. Цветные изображения помогут вам лучше понять изменения в выводе. Вы можете загрузить этот файл по адресу: http://www.packtpub.com/sites/default/files/downloads/9781788834445_ColorImages.pdf.
В данной книге вы найдёте ряд текстовых стилей, которые делают разницу между различными видами информации. Здесь мы приводим некоторые примеры этих стилей и объяснение их назначения.
CodeInText
указывает кодовые слова в тексте, имена таблиц базы данных, имена папок, имена файлов,
расширения файлов, имена путей, модели URL-адресов, ввод пользователя, и регулировки Twitter. Вот некий пример:
"Смонтируйте или выгрузите файл образа диска WebStorm-10*.dmg
как другой
диск в вашей системе.".
Блок кода устанавливается следующим образом:
# server configuration
datadir=C:/mysql-8.0.13/data/server1
basedir=C:/mysql-8.0.13/
Любой ввод командной строки или её вывод записываются следующим образом:
mysql> select * from mysql.plugin;
Жирно: указывает новый термин, важное слово которые вы видите на экране, например, в меню или блоках диалогов появляются именно так. Вот пример: "Выберите System info из панели Administration.".
![]() | Замечание |
---|---|
Предостережения или важные замечания появляются в блоках подобных этому. |
![]() | Совет |
---|---|
Советы и ловкие приёмы возникают таким образом. |
Обращения наших читателей всегда приветствуются.
Обычная обратная связь: Пошлите электронное письмо на адрес feedback@packtpub.com с упоминанием заголовка книги в теме вашего сообщения. Если у вас имеются вопросы относительно любых сторон данной книги, обратитесь, пожалуйста, по адресу questions@packtpub.com.
Ошибки: Хотя мы и предприняли все меры чтобы гарантировать точность содержимого, ошибки могут иметь место. Если вы обнаружили ошибку в данной книге, мы будем вам признательны если вы сообщите нам о ней. Посетите, пожалуйста, www.packtpub.com/submit-errata, выбрав вашу книгу, кликнув на ссылку Errata Submission Form, и заполнив подробности найденной вами ошибки.
Пиратство: Если вы столкнётесь с какой-либо незаконной копией наших работ в любой форме в Интернете, пожалуйста, предоставьте нам сразу адрес местонахождения или имя веб-сайта, чтобы мы могли принять меры. Пожалуйста, обратитесь по адресу copyright@packtpub.com со ссылкой на материалы содержащие признаки нарушения авторских прав. {Прим. пер.: Согласно закону об авторском праве РФ, авторские права на перевод принадлежат авторам этого перевода. Данным переводом, по нашему мнению, мы служим популяризации основных стратегических направлений развития тем Packt. В случае наличия конструктивных предложений, готовы к тесному сотрудничеству.}.
Если вы желаете стать нашим автором: Если у вас существует тема, в которой у вас имеется опыт и вы заинтересованы либо в написании, либо во вкладе в книгу, обратитесь к руководству по адресу authors.packtpub.com.
Оставляйте, пожалуйста, отзывы. Если вы прочли и воспользовались данной книгой, почему бы вам не оставить отзыв на том сайте, на котором вы её приобрели? Потенциальные читатели затем смогут увидеть и применить ваше беспристрастное суждение чтобы принять решение о приобретении, мы в Packt сможем понять что вы думаете о нашем продукте, а наши авторы увидят обратную связь относительно своей книги. Мы заранее благодарим вас!
Для получения дополнительной информации о Packt посетите, пожалуйста packtpub.com.