Project

General

Profile

Настройка MySQL 5.X

Начальные параметры

Если лень разбираться.

Для начала можно добавить следующие параметры (MySQL 5.5!). Вставляем после строки thread_cache_size:

lower_case_table_names  = 1
character-set-server=utf8
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'
default-storage-engine=INNODB

Изменяем параметр max_allowed_packet на значение, которое на 1Мб больше, чем максимальный размер файла подшиваемый к системе документооборота.

Подробнее

Максимальный размер пакета

Мы рекомендуем устанавливать значение, которое на 1Мб больше, чем максимальный размер файла подшиваемый к системе документооборота.

  • Windows
    • через консоль администрирования сервера MySQL
      • Запустить приложение MySQL Administrator и подключиться к серверу.
      • В разделе Startup Variables на закладке Advanced Networking установить параметр Max. packet size.
    • правкой ini-файла
      • В папке размещения ПО сервера MySQL открыть на редактирование файл my.ini
      • Изменить параметр max_allowed_packet (например: 31M).
  • Unix
    • файл my.cnf — секция mysqld, параметр max_allowed_packet

Приведение имен таблиц к нижнему регистру

Мы рекомендует включить опцию, чтобы все имена таблиц приводились к нижнему регистру. Таблицы хранятся в виде файлов. Если Ваша файловая система различает регистр - можете поиметь приключений. файл my.cnf - секция mysqld, добавляем параметр lower_case_table_names = 1

После изменения параметров необходимо перезапустить как сервер MySQL, так и сервер GlassFish.

Настройки

Дальше мы будем описывать некоторые настройки, которые могут пригодиться в процессе эксплуатации.

  • Это информация к РАЗМЫШЛЕНИЮ!

Жестких рецептов в администрировании практически нет, анализируйте, пробуйте. Удачи!

Для Unix конфигурация MySQL находится, как правило, в файле /etc/mysql/my.cnf

максимальное количество соединений

Открываем конфигурационный файл MySQL, секция [mysqld], параметр max_connections. Например, max_connections = 500. Помните, что это значение не только для нашей системы, а для всех пользователей (программ) MySQL.

Медленные запросы, запросы не использующие индекс

Секция [mysqld]

general_log_file = /var/log/mysql/mysql.log
general_log = 1 — детализация. Осторожно — Be aware that this log type is a performance killer. As of 5.1 you can enable the log at runtime!

log_slow_queries = /var/log/mysql/mysql-slow.log — где находится лог-файл для медленных запросов
long_query_time = 2 — запросы, которые выполняются более 2-х секунд считаются медленными и информация о них пишется в лог.

log-queries-not-using-indexes — туда же пишем все запросы, которые не используют индексы.

Внимание! Включив логирование, не забываем следить за размером файла.

Буферы

innodb_buffer_pool_size=256M — Если есть оперативка, то этот параметр лучше поставить чуть больше, чем суммарный размер всех баз. Но, это не вся память, которую сожрет MySQL — это только для таблиц/индексов. И только для InnoDB!

Разное

innodb_flush_method=O_DIRECT — Прямая запись на диск, минуя кеш операционной системы. Зависит от ОС.

innodb_flush_log_at_trx_commit=2 — лог пишется при каждой транзакции, но не сбрасывается на диск никогда, оставляя это на совести ОС. Возможна потеря данных при крахе операционки!!! Зависит от ОС.

Ссылки

http://habrahabr.ru/post/108418/ — настройка и оптимизация MySQL сервера
http://www.mysql.ru/docs/man/Optimising_the_Server.html — Оптимизация сервера MySQL