MySQL – мощная система управления реляционными базами данных с открытым исходным кодом, или СУБД в кратком виде. Она была выпущена в 1995 году (20 лет). Она использует Structured Query Language, которая, вероятно, является самым популярным выбором для управления содержимым в базе данных. Последняя версия MySQL – 5.6.25, она была выпущена 29 мая 2015 года.
Интересный факт о MySQL заключается в том, что название происходит от дочери Михаила Видениуса (основателя MySQL) – Мы. Несмотря на то, что о MySQL можно рассказать много интересного, этот статья призвана показать вам некоторые полезные практики для управления вашим сервером MySQL.

В апреле 2009 года проект MySQL был куплен компанией Oracle. В результате была создана ветка MySQL под названием MariaDB. Основной целью создания ветки было сохранение проекта бесплатным в соответствии с GNU General Public License.
Сегодня MySQL и MariaDB являются одними из самых часто используемых СУБД для веб-приложений, таких как WordPress, Joomla, Magento и других.
В этой статье будут показаны некоторые основные, но полезные советы по оптимизации и настройке производительности MySQL/MariaDB. Пожалуйста, имейте в виду, что эта статья предполагает, что у вас уже установлена MySQL или MariaDB. Если вы все еще не знаете, как установить их на своей системе, вы можете следовать нашим подробным инструкциям здесь:
- Установка LAMP на RHEL/CentOS 7
- Установка LAMP на Fedora 22
- Настройка LAMP на Ubuntu 15.04
- Установка MariaDB на Debian 8
- Установка MariaDB на Gentoo Linux
- Установка MariaDB на Arch Linux
Важно: Прежде чем начать – не принимайте эти рекомендации беспрекословно. Каждая установка MySQL уникальна и требует дополнительных размышлений перед внесением изменений.
Важные вещи, которые вам нужно знать:
- Конфигурационный файл MySQL/MariaDB находится в
/etc/my.cnf
. Каждый раз, когда вы изменяете этот файл, вам нужно перезапустить службу MySQL, чтобы изменения вступили в силу. - В этой статье использовалась версия MySQL 5.6 в качестве шаблона.
1. Включите InnoDB file-per-table
Первое, важно объяснить, что InnoDB является моделью storage engine. MySQL и MariaDB используют InnoDB в качестве Predefinir storage engine. Raby MySQL zdravilo databazni tabele in indeksi v sistemskih prostorih tabele. Ta pristop je bil zasnovan za strežnike, katere edina naloga je obdelava podatkov in njihovih hrbtenja diska ni uporabljeno za druge namene.
InnoDB omogoča bolj spreten pristop in vsak informacijo o databazi je shranjena v .ibd
datoteko podatkov. Vsaka .ibd datoteka predstavlja svojlastni prostor tabele. Na tak način lahko operacije baze podatkov, kot je “TRUNCATE“, opravljene hitreje in lahko tudi ponovno zasedete neuporabljeno prostor, ko zbrišete ali zmanjšate tablo baze podatkov.
Drug benefit tega nastavitve je dejstvo, da lahko nekatere tabele baze podatkov shranite na ločen strojni napravi. To lahko močno izboljša I/O obremenitev na diskih.
innodb_file_per_table je privzeto omogočen v MySQL 5.6 in nad. Lahko vidite, da je v datoteki /etc/my.cnf. Usmeritvena izjava izgleda takole:
innodb_file_per_table=1
2. Shrani podatke MySQL baze podatkov na ločen delitev
Opozorilo: Ta nastavitev deluje le z MySQL, ne pa z MariaDB.
Pogosto lahko OS branje/pisanje z慢nja izboljšajo zmogljivosti vašega strežnika MySQL, predvsem, če je zaseden na isto trdi disku. namesto tega bi priporočil, da uporabite ločen trdi disk (predvsem SSD) za storitev MySQL.
Za dokončanje tega boste moralo priključiti nov disk na vaš računalnik/strežnik. za namen tega članka bomo predpostavili, da bo disk pod /dev/sdb.
Следующим шагом является подготовка нового диска:
# fdisk /dev/sdb
Теперь нажмите “n”, чтобы создать новый раздел. Затем нажмите “p”, чтобы сделать новый раздел основным. После этого установите номер раздела от 1-4. Затем выберите размер раздела. Нажмите Enter здесь. На следующем шаге вам потребуется настроить размер раздела.
Если вы хотите использовать весь диск, нажмите Enter еще раз. В противном случае вы можете вручную задать размер нового раздела. Когда будете готовы, нажмите “w”, чтобы записать изменения. Теперь нам нужно создать файловую систему для нашего нового раздела. Это можно легко сделать с помощью:
# mkfs.ext4 /dev/sdb1
Теперь мы смонтируем наш новый раздел в папку. Я назвал папку “ssd” и создал ее в корневом каталоге:
# mkdir /ssd/
Мы готовы примонтировать новый раздел, который мы только что создали, в новую папку:
# mount /dev/sdb1 /ssd/
Вы можете выполнить монтирование при запуске, добавив следующую строку в файл /etc/fstab.
/dev/sdb1 /ssd ext3 defaults 0 0
Теперь вы готовы переместить MySQL на новый диск. Сначала остановите службу MySQL с помощью:
# service mysqld stop
I would recommend you stopping Apache/nginx as well to prevent any attempts to write in the databases:
# service httpd stop # service nginx stop
Теперь скопируйте весь каталог MySQL на новый диск:
# cp /var/lib/mysql /ssd/ -Rp
Это может занять некоторое время в зависимости от размера ваших баз данных MySQL. После завершения этого процесса переименуйте каталог MySQL:
# mv /var/lib/mysql /var/lib/mysql-backup
Затем мы создадим символическую ссылку.
# ln -s /ssd/mysql /var/lib/mysql
Теперь вы готовы запустить MySQL и веб-сервер:
# service mysqld start # service httpd start # service nginx start
На этом этапе ваши базы данных MySQL будут доступны с нового диска.
Source:
https://www.tecmint.com/mysql-mariadb-performance-tuning-and-optimization/