Как ускорить запуск MySQL

MySQL как любая служба запускается при помощи init-скрипта. Это не всегда так в зависимости от используемой системы инициализации, но чаще всего SystemD и Upstart обратно совместимы с SysV.

 

 

Ускорение запуска MySQL путем корректировки Init скрипта

Init скрипт можно найти в каталоге /etc/init.d/. Он называется mysql.

В файле присутствует указание на скрипт, непосредственно стратующий сервер баз данных


 # Start MySQL!
/usr/bin/mysqld_safe > /dev/null 2>&1 &



/usr/bin/mysqld_safe здесь — бинарник, который запускается, результат выполнения подавляется, как и ошибки.


Именно в этот фрагмент стартового скрипта добавим несколько параметров, что даст значительный рост скорости работы

 

–skip-name-resolve – предотвращает запросы в DNS серверу и определяет использование IP адресов, а не доменных имен


–skip-locking – запрещает блокировку при подключении извне, на блокировку не будет тратится время, но наличие опции позволит 2 и более коннектов к MySQL (что случается крайне редко)
При ограничении блокировки извне нельзя использовать несколько серверов для работы с одними и теми же БД.


–low-priority-updates – опция определяет приоритетную обработку запросов SELECT, INSERT-ы и UPDATE-ы обрабатываются во вторую очередь.



Поскольку запросы типа SELECT — самые частые, опция позволяет значительно увеличить скорость работы MySQL. Не стоит задавать опцию на сервере на который направляются только INSERT/UPDATE запросы, например, при репликации

 # Start MySQL!
/usr/bin/mysqld_safe –skip-name-resolve –skip-locking  –low-priority-updates > /dev/null 2>&1 &