В целях достижения оптимальной работы сервера, лучше, конечно, установить большой объем памяти и большие и быстрые жесткие диски. Однако в большинстве случаев такие прямолинейные методы неприемлемы. Ведь мы живем далеко не в самых идеальных условиях, и освоение более сложных методик оптимизации производительности сервера имеет немаловажное значение. Соответственно, этот раздел предоставляет краткий обзор некоторых основных приемов тонкой настройки сервера.
Как уже отмечалось в главе 13, "Администрирование и настройка", MySQL имеет большое количество переменных, значения которых легко изменяется в соответствии с индивидуальными требованиями. Некоторые из этих переменных задаются при загрузке сервера MySQL, другие - во время его работы.
Когда дело доходит до настройки переменных сервера на максимальную производительность, руководство по MySQL в первую очередь рекомендует обратить внимание на переменные key_buffer_size и table_cache.
■ Переменная key_buffer_size управляет количеством доступной буферу индексов памяти. Чем больше значение, тем больше памяти доступно индексам и тем выше производительность. Наиболее оптимальное значение - 25-30% от всей доступной на сервере памяти.
■ Переменная table_cache управляет количеством доступной кэшу таблиц памяти, а значит, максимальным количеством таблиц, которые MySQL может открыть одновременно. Для загруженных серверов с множеством баз данных и таблиц это значение должно быть увеличено, чтобы MySQL наверняка смогла обработать все запросы. Тут еще важна переменная max_connections, так как руководство рекомендует назначать переменную table_cache с помощью формулы (table_ cache = max_connections x N), где N - количество таблиц в типичном объединении.
Как отмечено в главе 13, "Администрирование и настройка", эти значения можно изменить командой SET, как это сделано в следующем примере.
Обратите внимание, что после изменения глобальной переменной сервера, она остается в действии до выключения сервера. Это значит, что если вы найдете выгодное значение, вам нужно будет устанавливать его после каждой загрузки сервера. Так как это весьма обременительно, важно знать, каким образом можно сделать изменения постоянными. Для этого следует изменить переменную в конфигурационном файле (см. главу 13, "Администрирование и настройка").
Установив желаемые значения кэша таблиц и буфера индекса, вы можете переключить внимание на другие буферы памяти, используемые системной MySQL.
■ С помощью переменной sort_buffer, управляющей буфером сортировки, вы можете ускорить запросы, использующие операторы ORDER BY и GROUP BY. Также для ускорения чтения отсортированных строк, можно увеличить переменную read_rnd_buffer_size.
■ Вы можете ускорить выполнение запросов SELECT, которые последовательно сканируют таблицу, увеличив буфер чтения с помощью переменной read_buffer_ size.
■ При выполнении транзакции, MySQL записывает составляющие транзакцию операторы в двоичный журнал, хранит их в кэше, а затем выполняет оператор COMMIT. В случае длинных и сложных транзакций, в целях повышения производительности размер этого кэша должен быть увеличен с помощью переменной binlog_cache_size.
■ Если вы составляете т.н. "массовые вставки" (это вставка нескольких записей с помощью одной команды INSERT), вы можете ускорить этот процесс, увеличив значение переменной bulk_insert_buffer_size. Однако это работает только в таблицах типа MyISAM.
■ Если вы ожидаете большого количества соединений с сервером, лучше увеличить значение переменной thread_cache_size. Эта переменная управляет кэшем, куда направляются потоки сервера после отключения обслуживаемого ими клиента. Затем потоки из этого кэша снова используются для обслуживания новых соединений. Чем больше значение, тем больше потоков будет кэшироваться и тем меньше будет время ответа на новые запросы соединений.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
Все о MySQL. Изменение настроек сервера
28-12-2009
<< Предыдущая статья | Следующая статья >> |
Все о MySQL. Оптимизация структуры таблиц | Все о MySQL. Тестирование |