Некоторые параметры конфигурации MySQL (my.ini)

1. Группа [client] – параметры клиентских приложений MySQL:
[client]
# порт, по которому клиент соединяется к серверу
port = 3306

2. Группа [mysql] – параметры сервера MySQL:
[mysql]
# кодировка, по умолчанию, заданная при конфигурировании БД
default-character-set = utf8

3. Группа [mysqld] – параметры БД MySQL:
[mysqld]
# движок хранения данных позволяет создать таблицу, которая получает данные из другой таблицы, даже если последняя находится на удалённом сервере.  #Структура таблиц должна быть одинаковой.
# http://iwannabedeveloper.com/2010/03/federated-mysql-engine/
# http://dev.mysql.com/doc/refman/5.0/en/federated-storage-engine.html
federated
# порт для соединения к серверу
port = 3306
# уникальный номер 0..4294967295, для настройки репликации master-slave
# http://habrahabr.ru/post/56702/
server-id = 1
# формат бинарных-логов, имеет значения ROW|STATEMENT|MIXED
# ROW – в бинарный-лог заносятся изменения строк
# STATEMENT – в бинарный лог заносятся dml-операции по изменению данных
# MIXED – совмещение ROW|STATEMENT
binlog_format = STATEMENT
# имя (можно с указанием пути) бинарного лога
log-bin = mysql-bin
# индексный файл для хранения служебной инфы по бинарным логам
log-bin-index = mysql-bin.index
# лог ошибок работы сервера и БД
log-error = mysql-bin.err
# срок хранения бинарных логов в днях
expire_logs_days = 3
# путь инсталляции программных файлов MySQL
basedir = «C:/Program Files/MySQL/MySQL Server 5.1/»
# путь хранения БД для ROOT
datadir = «C:/MySQLDB/Data/»
# кодировка заданная БД
character-set-server = utf8
# технология хранения данных по умолчанию, при создании таблиц
default-storage-engine = INNODB
# режим поддержки синтаксиса и проверки SQL, для упрощения работы MySQL с другими базами
sql-mode =  «STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION»
# максимальное кол-во конкурентных сессий
max_connections = 120
# максимальный размер буфера обмена
max_allowed_packet = 16M
# кэширование запросов и результатов их выполнения. Может увеличить производительность выполнения повторяющихся запросов, при условии, что таблицы не часто изменяются. Если же таблицы быстро растут (Insert) или частый Update, то данный показатель может снизить скорость работы запросов в целом,  поскольку запросы кэшируются на диске. http://habrahabr.ru/post/41166/
# http://habrahabr.ru/post/108418/
query_cache_size = 1M
# размер максимальной выборки, хранимой в кэше
query_cache_limit = 1M
# определяет, включено ли кэширование или нет (ON, DEMAND, OFF). При использовании DEMAND кэшироваться будут только запросы, в которых есть директива SQL_CACHE
query_cache_type = DEMAND
# минимальный размер блока, хранимого в кэше, по умолчанию 4096
query_cache_min_res_unit = 4096
# количество кэшированных открытых таблиц для всех потоков. Открытие файла таблицы может быть достаточно ресурсоемкой операцией, поэтому лучше держать открытые таблицы в кэше. Следует учесть, что каждая запись в этом кэше использует системный дескриптор, поэтому возможно придется увеличивать ограничения на количество дескрипторов (ulimit). Значение по умолчанию 64, его лучше всего увеличить до общего количества таблиц, если их количество в допустимых рамках. Переменная состояния Opened_tables позволяет отслеживать число таблиц, открытых в обход кэша, желательно, чтобы ее значение было как можно ниже
table_cache = 64
# максимальный размер памяти, выделяемой для временных таблиц, создаваемых MySQL для своих внутренних нужд. Это значение также ограничивается переменной max_heap_table_size, поэтому в итоге будет выбрано минимальное значение из max_heap_table_size и tmp_table_size, а остальные временные таблицы будут создаваться на диске. Значение по умолчанию зависит от системы, попробуйте установить его равным 32 МБ и понаблюдать за переменной состояния Created_tmp_disk_tables, ее значение должно быть как можно меньше
tmp_table_size = 32M
# как много threads мы должны хранить в кэше до повторного использования
thread_cache_size = 8
# объем памяти, выделяемый для буфера соединения и для буфера результатов на каждый поток. Буфер соединения будет указанного размера и буфер результатов будет такого же размера, т.е. на каждый поток будет выделен двойной размер net_buffer_length. Указанное значение является начальным и при необходимости буферы будут увеличиваться вплоть до max_allowed_packet. Размер по умолчанию 16 КБ.
# В случае ограниченной памяти или использования только небольших запросов значение можно уменьшить. В случае же постоянного использования больших запросов и достаточного объема памяти, значение стоит увеличить до предполагаемого среднего размера
net_buffer_length = 16K
# максимальный размер временного файла для быстрого перестроения индексов, если размер будет недостаточен, то индексы будут строиться с помощью кэш-ключей (медленнее)
myisam_max_sort_file_size = 100G
# размер буфера для сортировки результата запроса, который не может быть полностью размещен в память
myisam_sort_buffer_size = 34M
# Размер буфера ключей, используемых для кэширования блоков индекса для таблиц MyISAM. Обычно 30% от доступной памяти на сервере, если основной движок хранилища MyISAM
key_buffer_size = 16M
# каждый поток при последовательном сканировании таблиц выделяет указанный объем памяти для каждой таблицы. Параметр влияет на большие запросы типа select count(*) from. По умолчанию 16К.
read_buffer_size = 128K
# актуально для запросов с «ORDER BY», т.е. для запросов, результат которых должен быть отсортирован и которые обращаются к таблице, имеющей индексы. По умолчанию 256К.
read_rnd_buffer_size = 1M
# каждый поток, производящий операции сортировки (ORDER BY) или группировки (GROUP BY), выделяет буфер указанного размера. Значение по умолчанию 2 МБ, если вы используете указанные типы запросов и если позволяет память, то значение стоит увеличить.
sort_buffer_size = 2M
# путь к файлам InnoDB
innodb_data_home_dir = «C:/MYDATA/IDB/»
# имя датафайла InnoDB, его размер, и ограничения
innodb_data_file_path = ibdata1:10M:autoextend:max:600M
# размер памяти, выделяемый InnoDB для хранения индексов и данных. Значение — чем больше, тем лучше. Можно увеличивать вплоть до общего размера всех InnoDB таблиц или до 80% ОЗУ, в зависимости от того, что меньше
innodb_buffer_pool_size = 256M
# размер памяти, выделяемый InnoDB для хранения различных внутренних структур. Если InnoDB будет недостаточно этой памяти, то будет запрошена память у ОС и записано предупреждение в лог ошибок MySQL
innodb_additional_mem_pool_size = 20M
# максимальный размер одного лог-файла. При достижении этого размера InnoDB будет создавать новый файл. Значение по умолчанию 5 МБ, увеличение размера улучшит производительность, но увеличит время восстановления данных. Установите это значение в диапазоне 32 МБ — 512 МБ в зависимости от размера сервера (оценив его субъективно)
innodb_log_file_size = 64M
# размер буфера лога. Значение по умолчанию 1 МБ, увеличивать его стоит, если вы знаете, что будет большое количество транзакций InnoDB или если значение переменной состояния Innodb_log_waits растет. Вам вряд ли придется увеличивать его выше 8 МБ
innodb_log_buffer_size = 8M
# имеет три допустимых значения: 0, 1, 2. При значении равном 0, лог сбрасывается на диск один раз в секунду, вне зависимости от происходящих транзакций. При значении равном 1, лог сбрасывается на диск при каждой транзакции. При значении равном 2, лог пишется при каждой транзакции, но не сбрасывается на диск никогда, оставляя это на совести ОС. По умолчанию используется 1, что является самой надежной настройкой, но не самой быстрой. В общем случае вы можете смело использовать 2, данные могут быть утеряны лишь в случае краха ОС и лишь за несколько секунд (зависит от настроек ОС). 0 — самый быстрый режим, но данные могут быть утеряны как при крахе ОС, так и при крахе самого сервера MySQL (впрочем данные лишь за 1-2 секунды).
innodb_flush_log_at_trx_commit = 1
# Количество потоков разрешенное внутри ядра InnoDB.Оптимальное значение сильно зависит от приложения, железа, а также ОС. Слишком высокие значения могут привести к расщеплению потока
innodb_thread_concurrency = 8

Реклама