Настройка MYSQL

[16 июля 2019 г.]    Российская сборка Magento 2.52.2
Magento 2: модули и услуги
magereport.com: составление перечня необходимых для установки заплаток SUPEE
#1 Сергей Марков
  • Группа: Клиент
  • Сообщений: 12
  • Регистрация: 07.06.2011

06.06.2015 21:34

Настройки сервера mysql храняться в файле /etc/mysql/my.cnf. Установленный по умолчанию my.cnf рассчитан на совсем музейные машины, главное чтоб mysql завелась.

в комплекте установки поставляются и другие файлы, рассчитанные на более современные машины.

что нужно сделать:
1 переименовать дефолтный my.cnf
2 скопировать из папки /usr/share/doc/mysql-server-5.5/examples/ файл my-innodb-heavy-4G.cnf в /etc/mysql/ и переименовываем его в my.cnf
3 service mysql restart

как правило, этого достаточно для значительного ускорения работы базы данных

что можно еще сделать в этом файле:
1. раскомментировать skip-networking - таким образом мы запретим внешние подключения к БД
2 редактируем значение thread_concurrency
thread_concurrency = (кол-во процессоров)*(кол-во ядер в одном процессоре)*3

3 key_buffer=1024M – размер буфера, используемого для блоков индексов. Чтобы улучшить обработку индексов (для всех операций чтения и записи нескольких элементов), необходимо увеличить это значение настолько, насколько возможно. Рекомендуется выставлять это значение от 15% до 25% ОЗУ, чтобы система не начала сохранять временные файлы на диске, что значительно снизит производительность.

4 sort_buffer=128M – Каждый поток, которому необходимо произвести сортировку, выделяет буфер данного размера. Увеличение данного значения позволит ускорить выполнение операторов ORDER BY или GROUP BY. “Увлекаться” большим значением не стоит, а посчитать его можно исходя из среднего значения открытых потоков (Threads_running) и кол-ва ОЗУ сервера.
mysql> show status LIKE "Threads_running%";

5 myisam_sort_buffer_size=512М – Буфер, который выделяется для сортировки индексов при выполнении команды REPAIR или для создания индексов при помощи команд CREATE INDEX или ALTER TABLE. Рекомендуется не жадничать …

6 innodb_flush_log_at_trx_commit = 2 - Значение по умолчанию «1» означает, что каждая UPDATE-транзакция (или аналогичная команда вне транзакции) должна сбрасывать буфер на диск, что достаточно ресурсоёмко. Большинство приложений, в особенности ранее использовавшие таблицы MyISAM, будут хорошо работать со значением «2» (т.е. «не сбрасывать буфер на диск, только в кэш ОС»). Лог, однако, всё равно будет сбрасываться на диск каждые 1-2 секунды, поэтому в случае аварии Вы потеряете максимум 1-2 секунды обновлений. Значение «0» повысит производительность, но Вы рискуете потерять данные даже при аварийной остановке mySQL-сервера, в то время как при установке значение innodb_flush_log_at_trx_commit в «2» Вы потеряете данные только при аварии всей операционной системы.

для вступления новых настроек в силу опять же service mysql restart

Поделиться темой: