Базы данных MySQL используются практически всеми веб-мастерами для полноценного функционирования сайтов. При этом в большинстве случаев все настройки остаются стандартными, а это далеко не всегда оправдано. Дело в том, что изначальная настройка базы данных MySQL предполагает обеспечение корректной работы на слабом компьютерном “железе” и с небольшими БД. Если провести аналогию, то подобную ситуацию можно сравнить с тем, как если бы вы приобрели дорогую зеркальную фотокамеру, но при этом используете только стандартный автоматический режим без каких-либо дополнительных настроек. То же происходит и в случае с базой данных.
Настройка MySQL под высокую нагрузку, конечно же, требует более тщательного внимания к настраиваемым параметрам. Тем не менее, это не настолько сложно, насколько может показаться на первый взгляд.
Настройка MySQL – параметры и их значения
Существует множество различных настроек в MySQL и полное их перечисление займет немало места. Поэтому далее мы рассмотрим ключевые характеристики, изменяя которые вы сможете настроить сервер именно под свои условия работы. Кстати, базовая настройка MySQL проводится без использования дополнительного ПО, нужно только SSH-подключение. Если же вам нужна тонкая настройка MySQL, то в этом вам поможет ISPManager. А теперь давайте перейдем непосредственно к настраиваемым характеристикам:
- key_buffer_size
Один из наиболее важных параметров. Если вы используете мало таблиц MyIsam, то значение может быть 32МБ, если же эти таблицы используются в вашей БД повсеместно, то лучше выделить для них 30-40% от всей памяти. - innodb_buffer_pool_size
Эта настройка по своей сути аналогична предыдущей. Только если первая используется для MyIsam-таблиц, то вторая – для InnoDB-таблиц. И если в вашей базе представлены в основном таблицы InnoDB, то объем памяти можно ставить 60-80% от доступной оперативной памяти при том, что такие таблицы не используют кэш ОС, а имеют собственную память. Естественно, если в вашей БД не используют InnoDB-таблицы, то выставлять большой кэш не нужно. - innodb_additional_mem_pool_size
Данный параметр в большинстве случаев слабо влияет на быстродействие БД, но все равно нужно оставлять не менее 20 МБ для удовлетворения внутренних нужд InnoDB. - innodb_log_file_size
Эта настройка MySQL требует изменения в том случае, если в вашей базе данных проводятся частые записи в таблицы, особенно в случае с внушительными объемами этих записей. Рекомендуемое значение – от 64 до 512 МБ, и чем больше размер отведенной памяти, тем быстрее обрабатываются запросы, но при этом дольше будет идти восстановление данных. - innodb_log_buffer_size
Для небольших БД подойдет стандартная настройка сервера MySQL, которая рекомендуется по умолчанию. Если же деятельность пользователей вашей базы имеет ярко выраженные всплески активности, то рекомендуемая настройка MySQL по этому параметру – 16 МБ. Так как содержимое этого буфера обнуляется каждую секунду, нет смысла ставить большее значение. - innodb_flush_log_at_trx_commit
Этот параметр имеет три значения, которые влияют на быстродействие сервера при работе с InnoDB. При значении 1 любая транзакция при своем совершении будет синхронно записываться на диск. При значении 2 транзации будут записываться не на диск, а в кэш, то есть лог пишется на диск с небольшой задержкой, что немного увеличивает быстродействие. При значении 0 запись отключается совсем – это дает наибольшее быстродействие, но при этом велика вероятность потери данных. Рекомендуемое значение параметра – 2. - table_cache
Эта настройка базы данных MySQL на хостинге регулирует объем памяти, выделяемый для открытых таблиц. Открытие и закрытие таблиц – ресурсоемкое действие, поэтому лучше выделить достаточно памяти для того, чтобы держать большинство таблиц открытыми. Начальный параметр лучше ставить 1024 МБ. Если же этого недостаточно, то есть у вас большая БД с огромным количеством таблиц, значение этой настройки можно увеличивать. - thread_cache
За счет этого параметра не допускается создание новых потоков в нормальном режиме функционирования сервера, так как создание и удаление потоков отнимает немало ресурсов. Рекомендуемое значение – 16, при этом по переменной Threads_created можно определить, требуется ли дальнейшее изменение параметра: если значение переменной растет, то и параметр необходимо увеличивать. - query_cache_size
Эта настройка MySQL Ubuntu Server определяет объем кэша для запросов. Не стоит выделять под это слишком много памяти, так как это может не ускорить, а наоборот – замедлить работу базы, ведь ресурсы выделяются еще и на управление данными внутри кэша. Значение этого параметра может достигать 512 МБ, но лучше начать с 32 МБ и постепенно увеличивать до оптимального объема.
Под MySQL мы рекомендуем взять выделенный сервер на Windows или Linux. На Linux не потребуется платить за лицензию и настройка более удобна и проста.
Как видите, базовая настройка MySQL на Linux или любой другой ОС не так уж и сложна, достаточно подстроить под ваш сервер основные параметры. Пользуетесь хостингом от RigWEB и столкнулись с непредвиденными трудностями, из-за которых установка и настройка MySQL на Ubuntu или другой Unix-системе не прошла так, как надо? Обратитесь за помощью к сотрудникам техподдержки. Вы получите квалифицированную консультацию и помощь в настройке MySQL, после чего сможете продолжить работу над своим веб-проектом.