Як налаштувати MySQL без музичної освіти

363

Від автора: хлопці! Біда у мене! Нещодавно оселився поруч новий сусід, а він музикант. І найстрашніше, що грає на барабані. Після чергового «творчого кризиса2 він вирішив з музикантів податися в настроювачі ударних установок. Ось з тих пір і тренується вдома! Причому від цього всього «вдома» почалася суцільний головний біль. Загалом, вирішили його «перекваліфікувати» в адміністратора СУБД. Навчання сусіда я почав розгляд теми про те, як налаштувати MySQL.

Особливості налаштування СУБД

Основні налаштування MySQL задаються при установці примірника на комп’ютер або хостинг. Велика частина параметрів (при використанні для інсталяції пакета інсталятора Windows) ініціалізуються автоматично при виборі у вікні распаковщика стандартного варіанту.

Тим не менш, всю «доведення» СУБД під високопродуктивний ресурс доведеться проводити вручну з допомогою зміни параметрів у конфігураційному файлі my.cnf, який є глобальним для всього примірника MySQL.

У мене на локально встановленому Денвері цей файл знаходиться на віртуальному диску, який створюється автоматично при запуску Apache, за адресою: Z:\usr\local\mysql-5.5

Як налаштувати MySQL без музичної освіти

В інших версія сервера СУБД конфігураційний файл може перебувати у вкладеній папці etc /etc/my.cnf

Це стане в нагоді, щоб знати всі нюанси того, як налаштувати MySQL на хостингу. Так як на різних майданчиках можуть використовуватися різні версії СУБД.

Глобальний файл конфігурації відкривається за допомогою Блокнота або будь-якого іншого текстового редактора. Поглянемо, що знаходиться всередині my.cnf.

Як налаштувати MySQL без музичної освіти

Тут прописані основні параметри конфігурації, які необхідні для роботи вашого примірника СУБД. Опишемо деякі з них.

Часто затребувані налаштування my.ini

Параметри, які будуть коротко розглянуті нижче, часто затребувані при більш тонкої настройки СУБД під конкретні навантаження або особливості структури БД. Мається на увазі тип таблиці, який задається при створенні:

Як налаштувати MySQL без музичної освіти

nnodb_flush_log_at_trx_commit.

MyISAM.

CSV.

MEMORY.

ARHIVE.

BLACKHOLE.

Всі вони застосовуються для зберігання певних типів даних. Точніше, особливості цих движків дозволяють використовувати MySQL певний формат даних. Більш докладно про це можна дізнатися з офіційної документації по СУБД або іншої професійної літератури. Але повернемось до параметрів з my.ini, з якими потрібно ознайомитися перед тим, як налаштовувати MySQL сервер:

key_buffer_size – значення цієї змінної слід збільшувати, якщо на сервері часто застосовується тип MyISAM. За замовчуванням варто значення 32 «метра». При частому використанні таблиць даного типу параметр слід збільшити до 30% від обсягу всієї відведеної MySQL пам’яті.

innodb_buffer_pool_size – потрібно підвищувати значення даної змінної, якщо ви часто застосовуєте тип InnoDB. Так як ці таблиці не використовують системний кеш (ОС), то під них доведеться виділити близько 60% від пам’яті.

innodb_log_file_size – цей параметр слід підвищувати, якщо в БД відбувається часта запис даних. Чим більше значення, тим швидкість виконання запитів вище. Але тоді процес відновлення інформації буде займати більше часу.

query_cache_size – встановлює розмір кешу під запити. Більше пам’яті варто виділяти, якщо на рівні програми не реалізовано власного кеша. Тоді слід збільшити значення параметра до 512 Мб, але це максимально допустимий показник. Оскільки це призведе до надмірного споживання серверних потужностей.

thread_cache – розмір кешу, що виділяється під підключення (потоки). Велике значення також може призвести до значного підвищення витрачання потужностей серверу, виділених на хостниге.

table_open_cache (в деяких версіях СУБД table_cache) – скільки пам’яті виділено під кеш таблиць. При цьому для підвищення швидкості обробки запитів потрібно виділити достатню кількість ресурсів. Для бази (баз) у кілька сотень таблиць даний показник повинен мати значення близько 1 «гектари» (у файлі конфігурації вказується 1024).

nnodb_flush_log_at_trx_commit – впливає на швидкість взаємодії таблицями СУБД типу InnoDB. Перед тим, як налаштувати базу даних MySQL, варто з’ясувати, яке значення задати цього параметру. 1 – тоді запис даних буде відбуватися на дисковий простір (самий повільний варіант); 2 – інформація зберігається в кеші ОС, а запис в логи відбувається після запису в кеш (підходить для більшості випадків); 0 –дані зберігаються відразу в логи (найшвидший варіант, але і найбільш небезпечний).

innodb_log_buffer_size – розмір кешу під логи. Велике значення слід встановлювати, якщо на сайті може різко підвищуватися (сплеском) навантаження на СУБД. В інших випадках краще залишити значення змінної без змін.

Системні змінні

Якщо ви уважно мене «слухали», то повинні були звернути увагу, що я називав параметри конфігурації з my.ini системними змінними. Це означає, що їх можна змінювати і отримувати їх значення за допомогою запитів SQL. Перед тим, як налаштовувати MySQL, перевіримо дану аксіому на практиці. Для початку виведемо значення всіх системних змінних СУБД:

show variables

Як налаштувати MySQL без музичної освіти

Ух ти! Так їх тут кілька десятків, тому знайти потрібну змінну в цьому списку буде дуже складно. Спрощуємо процес пошуку:

show variables like ‘%query_cache_size’;

Як налаштувати MySQL без музичної освіти

Значення змінної ми отримали, ось тільки в my.ini для цього параметра встановлено значення 56 метрів. А тут якесь восьмизначное число.

Як налаштувати MySQL без музичної освіти

Скористаємося онлайн-конвертором величин, і переведемо повернене MySQL значення в мегабайти (Мб). Виходить, що запит повернув результат в байтах.

Як налаштувати MySQL без музичної освіти

Це слід враховувати, щоб вміти й знати, як налаштувати MySQL сервер.

Тепер задамо для змінної query_cache_size більшого значення. Наприклад, 70 метрів. Для цього знову скористаємося конвектором величин: 70 мегабайт = 73400320 байт

Потім запускаємо на виконання наступний запит:

SET GLOBAL `query_cache_size`=73400320;

Як налаштувати MySQL без музичної освіти

Тепер перевіримо, чи змінилося значення змінної. Для цього використаємо попередній запит (show variables):

Як налаштувати MySQL без музичної освіти

Ми бачимо, що значення параметра збільшилася, але воно не змінилося в конфігураційному файлі. З-за цього «підвищений» буфер буде діяти тільки в рамках поточного сеансу. Під час наступного запуску сервера СУБД знову вважає дані з my.ini і кеш під запити знову зменшиться до 56 МБ.

Виходить, що потрібно редагувати зміст конфігураційного файлу. Так «глобальніше» буде Як налаштувати MySQL без музичної освіти . Сподіваюся, тепер ви знаєте, як налаштувати бази даних MySQL. Це обов’язково стане у нагоді. А що мій сусід? Дошкуляє мене розпитуваннями щодо СУБД, тому тепер голова болить тільки у мене, а не у всього будинку.