Поради щодо тюнінгу MySQL від професіонала. Дізнайтеся, як запобігти проблемам MySQL. Зрозумійте, як MySQL оптимізує та виконує запити.
Архітектура MySQL
Перегляд кроків, залучених до виконання запиту
Як протокол клієнт/сервер впливає на MySQL
Розуміння того, як оптимізатор запитів виконує свою роботу
Як рівень сховища робить MySQL унікальним
Пошук кандидатів для оптимізації запитів
Використання Performance Schema, яка є справжньою знахідкою для виявлення запитів для оптимізації, оскільки вона дозволяє нам вимірювати, де час іде.
Пошук кількох запитів, за якими ховається основна частина навантаження на систему. Перевірка топ-1000 запитів зазвичай не варта того, щоб витрачати час для оптимізації.
Як знайти актуальну інформацію з великої кількості уявлень і метрик продуктивності, доступних у MySQL
Розуміння того, чому оператори UPDATE і DELETE також вважаються читаннями, хоча вони в першу чергу є операторами запису. Це вплине на введення/виведення і, отже, на час відповіді.
Аналіз запитів
Розуміння того, чому MySQL створює план запиту перед кожним запитом
Як читати плани запитів та розуміти, як працює кожен з основних типів вузлів у MySQL
Серія прикладів, щоб показати, як можна використовувати висновок EXPLAIN, щоб визначити, де MySQL витрачає час на ваш запит і чому
Які ключові моменти слід враховувати для виявлення проблем із продуктивністю
Кластеризований індекс та вибір первинного ключа
Коли ми працюємо з таблицями, організованими за індексами, як MySQL, вибір первинного індексу дуже важливий.
Ми побачимо, як первинний ключ може впливати на кількість випадкового або послідовного введення/виводу, розмір вторинних індексів та кількість сторінок, які мають бути раховані у буферний пул.
Ми розумітимемо, чому оптимальний первинний ключ з погляду кластеризованого індексу має бути якнайменше (в байтах), постійно збільшуватися монотонно і групувати рядки, які часто запитуємо, поблизу друг від друга.
Індексування для продуктивності
Які основні функції індексу?
Ми побачимо, які таблиці дійсно потребують індексу, а які таблиці краще обходити без нього.
Ми перевіримо, як MySQL покладається на статистику для вибору найкращого індексу та як ми можемо допомогти йому приймати більш обґрунтовані рішення.
Складові індекси
Загальні помилки під час використання складових індексів
Як визначити порядок стовпців для багатоколоночних індексів
Вміння логічно мислити про те, як працюють індекси, та вибирати їх на основі цього розуміння, а не за правилами на основі досвіду
Які сценарії використання роблять надмірні індекси корисними і коли їх краще уникати.
Робота над деякими тестами для перевірки фактичної продуктивності цифр.
Конфігурації сервера MySQL
Перевірте, як ми повинні підходити до змін конфігурації MySQL, враховуючи деякі найкращі практики, щоб ми могли успішно налаштувати MySQL.
Які три параметри, швидше за все, принесуть користь MySQL при використанні нестандартних значень та як їх встановити.
Ознайомтеся з оглядом життєвого циклу даних в InnoDB, щоб ми мали попереднє подання при внесенні змін до конфігурації.
Налаштування параметрів, важливих для певних сценаріїв використання, наприклад, екземплярів буферного пулу для високонавантажених робочих навантажень, та як використовувати паралельне виконання для певних запитів.
Транзакції та блокування у MySQL
Транзакції дуже важливі для забезпечення цілісності даних, але при неправильному використанні вони можуть спричинити серйозні проблеми з продуктивністю.
Отримайте огляд того, чому потрібні блокування та деякі способи зменшити їх вплив.
Як індекси, поділ транзакції та рівні ізоляції можуть допомогти зменшити кількість блокувань.
Варіанти моніторингу та які звітні таблиці слід перевіряти для виявлення проблем із блокуваннями.
Введення в масштабування MySQL
Що означає масштабування MySQL, і ми розглянемо різні осі, якими нам може знадобитися масштабуватися.
Розуміння того, як масштабувати різні види навантажень
Реплікація та чому нам потрібно використовувати Read-Pools, Health Checks та Service Discovery
Які основні проблеми та підводні камені при ухваленні рішення про фрагментацію бази даних
Як розбивати дані в MySQL
Які сценарії використання та переваги використання черги
Основні концепції масштабування записів з використанням фрагментації