Как настроить MySQL без музыкального образования

Как настроить MySQL

От автора: ребята! Беда у меня! Недавно поселился рядом новый сосед, а он музыкант. И самое страшное, что играет на барабане. После очередного «творческого кризиса2 он решил из музыкантов податься в настройщики ударных установок. Вот с тех пор и тренируется дома! Причем от этого у всего «дома» началась сплошная головная боль. В общем, решили его «переквалифицировать» в администратора СУБД. Обучение соседа я начал с рассмотрение темы о том, как настроить MySQL.

Особенности настройки СУБД

Основные настройки MySQL задаются при установке экземпляра на компьютер или хостинг. Большая часть параметров (при использовании для инсталляции пакета установщика Windows) инициализируются автоматически при выборе в окне распаковщика стандартного варианта.

Тем не менее, всю «доводку» СУБД под высокопроизводительный ресурс придется проводить вручную с помощью изменения настроек в конфигурационном файле my.cnf, который является глобальным для всего экземпляра MySQL.

У меня на локально установленном Денвере этот файл находится на виртуальном диске, который создается автоматически при запуске Apache, по следующему адресу: Z:\usr\local\mysql-5.5

В других версия сервера СУБД конфигурационный файл может находиться во вложенной папке etc: /etc/my.cnf

Это пригодиться, чтобы знать все нюансы того, как настроить MySQL на хостинге. Так как на разных площадках могут использоваться различные версии СУБД.

Глобальный файл конфигурации открывается с помощью Блокнота или любого другого текстового редактора. Взглянем, что находится внутри my.cnf.

Здесь прописаны основные параметры и конфигурации, которые необходимы для работы вашего экземпляра СУБД. Опишем некоторые из них.

Часто востребованные настройки my.ini

Параметры, которые будут кратко рассмотрены ниже, часто востребованы при более тонкой настройки СУБД под конкретные нагрузки или особенности структуры БД. Имеется в виду используемый тип таблицы, который задается при создании:

nnodb_flush_log_at_trx_commit.

MyISAM.

CSV.

MEMORY.

ARHIVE.

BLACKHOLE.

Все они применяются для хранения определенных типов данных. Точнее, особенности этих движков позволяют MySQL использовать определенный формат данных. Более подробно об этом можно узнать из официальной документации по СУБД или из другой профессиональной литературы. Но вернемся к параметрам из my.ini, с которыми нужно ознакомиться перед тем, как настраивать MySQL сервер:

key_buffer_size – значение этой переменной следует увеличивать, если на сервере часто применяется тип MyISAM. По умолчанию стоит значение 32 «метра». При частом использовании таблиц данного типа параметр следует увеличить до 30% от объема всей отведенной MySQL памяти.

innodb_buffer_pool_size – нужно повышать значение данной переменной, если часто применяете тип InnoDB. Так как эти таблицы не используют системный кэш (ОС), то под них придется выделить около 60% от все памяти.

innodb_log_file_size – этот параметр следует повышать, если в БД происходит частая запись данных. Чем больше значение, тем скорость выполнения запросов выше. Но тогда процесс восстановления информации будет занимать больше времени.

query_cache_size – устанавливает размер кэша под запросы. Больше памяти стоит выделять, если на уровне приложения не реализовано собственного кэша. Тогда следует увеличить значение параметра до 512 Мб, но это максимально допустимый показатель. Поскольку это приведет к чрезмерному потреблению серверных мощностей.

thread_cache – размер кэша, выделяемый под подключения (потоки). Большое значение параметра также может привести к значительному повышению расходования мощностей сервера, выделенных на хостниге.

table_open_cache (в некоторых версиях СУБД table_cache) – сколько памяти выделено под кэш таблиц. При этом для повышения скорости обработки запросов нужно выделить достаточное количество ресурсов. Для базы (баз) в несколько сотен таблиц данный показатель должен иметь значение около 1 «гектара» (в файле конфигурации указывается 1024).

nnodb_flush_log_at_trx_commit – влияет на скорость взаимодействия СУБД таблицами типа InnoDB. Перед тем, как настроить базу данных MySQL, стоит выяснить, какое задать значение задать этому параметру. 1 – тогда запись данных будет происходить на дисковое пространство (самый медленный вариант); 2 – информация сохраняется в кэше ОС, а запись в логи происходит после записи в кэш (подходит для большинства случаев); 0 –данные сохраняются сразу в логи (самый быстрый вариант, но и самый небезопасный).

innodb_log_buffer_size – размер кэша под логи. Большое значение следует устанавливать, если на сайте может резко повышаться (всплеском) нагрузка на СУБД. В остальных случаях лучше оставить значение переменной без изменений.

Системные переменные

Если вы внимательно меня «слушали», то должны были обратить внимание, что я называл параметры конфигурации из my.ini системными переменными. Это значит, что их можно изменять и получать их значение с помощью запросов SQL. Перед тем, как настраивать MySQL, проверим данную аксиому на практике. Для начала выведем значение всех системных переменных СУБД:

Ух ты! Да их тут несколько десятков, поэтому найти нужную переменную в этом списке будет очень сложно. Упрощаем процесс поиска:

Значение переменной мы получили, вот только в my.ini для этого параметра задано значение 56 метров. А тут какое-то восьмизначное число.

Воспользуемся онлайн-конвертором величин, и переведем возвращенное MySQL значение в мегабайты (Мб). Получается, что запрос вернул результат в байтах.

Это следует учитывать, чтобы уметь и знать, как настраивать MySQL сервер.

Теперь зададим для переменной query_cache_size большее значение. Например, 70 метров. Для этого снова воспользуемся конвектором величин: 70 мегабайт = 73400320 байт

Затем запускаем на выполнение следующий запрос:

Теперь проверим, поменялось ли значение переменной. Для этого используем предыдущий запрос (show variables):

Мы видим, что значение параметра увеличилось, но оно не изменилось в конфигурационном файле. Из-за этого «повышенный» буфер будет действовать только в рамках текущего сеанса. Во время следующего запуска сервер СУБД снова считает данные из my.ini и кэш под запросы снова уменьшится до 56 МБ.

Получается, что нужно редактировать содержание конфигурационного файла. Так «глобальнее» будет :). Надеюсь, теперь вы знаете, как настроить базы данных MySQL. Это обязательно пригодится. А что мой сосед? Донимает меня расспросами насчет СУБД, поэтому голова теперь болит только у меня, а не у всего дома.

Метки:

Похожие статьи:

Комментарии Вконтакте: