Главная > Программы > База данных > MySQL MySQL - настройка после установки
Как правило, сразу после установки mysql… сразу начинают использовать. Но настройки "из коробки" подходят для
небольших проектов с небольшой интенсивностью относительно простых запросов. Отсюда низкая производительность базы.
А ведь достаточно поменять всего несколько настроек, чтобы ситуация изменилась кардинально. Сразу оговорюсь, речь
будет идти в первую очередь про MyISAM, так как именно этот тип таблицы до сих пор используется наиболее часто (отчасти
тут виноваты и настройки по умолчанию - именно этот движок таблиц установлен изначально для создания таблиц без указания типа). query_cache_size=64M Такое значение подойдет для большинства серверов mysql, на нагруженных серверах можно его еще несколько увеличить. По опыту на сервер с несколькими тысячами баз значение в 128М было более чем подходящим. Следующий этап установка размеров временных таблиц. При выполнении JOIN и ряда других операций база данных создает временные объеденные таблицы. Создаваться такие таблицы могут как в памяти так и на жестком диске. Естественно при использовании жесткого диска запрос выполняется намного медленнее, чтобы этого избежать нужно выставить достаточный размер временных таблиц. max_heap_table_size=32M Значений в 32М более чем достаточно. Указать нужно именно две переменные, так как размер временной таблицы в памяти определяется меньшей из max_heap_table_size и tmp_table_size. Для создания временных таблиц в памяти mysql использует движок MEMORY, как раз максимальный размер MEMORY таблиц и определяется max_heap_table_size. tmp_table_size используется при определении движка, который будет использоваться для временных таблиц. Если таблица помещается в tmp_table_size и меньше max_heap_table_size - будет использоваться MEMORY, если нет - будет использоваться MYISAM на жестком диске. Самый важный параметр для MyISAM - размер памяти, выделяемый для хранения индексов. Индексы (или ключи) по своему назначению аналогичны оглавлению книги. С их помощью можно найти нужную страницу без просмотра всего содержимого книги. Что во много раз ускоряет выполнение запросов. Но индексы - это тоже файлы, которые нужно читать с диска, что долго. И чтобы оптимизировать этот процесс MyISAM выделяет отдельный буфер в памяти, в который сохраняет значения уже прочитанных индексов. Т.е. при следующем обращении к этому индексу жесткий диск уже не будет задействован, что во много раз повышает скорость выполнения запроса. Размер буфера под хранение индексов MyISAM очень легко определить - достаточно определить их размер на файловой системе. MyISAM хранит индексы в файлах с расширением .MYI, сумма размеров всех файлов индексов во всех базах даст идеальный размер буфера в памяти. Подсчитать общий размер очень просто. Первым делом определяем каталог с базами, для этого в консоли mysql вводим: Переходим в указанный каталог и считаем общий размер всех файлов: Как правило, для небольших и средних сайтов (и соответственно баз mysql) хватает 128M под буфер индексов,
key_cache_division_limit=70 - выделяет 70% под горячий кеш и 30% пол холодный из общего объема буфера индексов. Главная > Программы > База данных > MySQL |