5.1.1 Настройка сервера
Сервер MySQL, mysqld, имеет множество командных параметров и системных переменных, которые можно установить при запуске для настройки его работы. Чтобы определить значения параметров по умолчанию и системных переменных, используемых сервером, выполните следующую команду:
$> mysqld --verbose --help
Команда выводит список всех параметров mysqld и настраиваемых системных переменных. Вывод включает значения параметров и переменных по умолчанию, а также пример:
abort-slave-event-count 0
allow-suspicious-udfs FALSE
archive ON
auto-increment-increment 1
auto-increment-offset 1
autocommit TRUE
automatic-sp-privileges TRUE
avoid-temporal-upgrade FALSE
back-log 80
basedir /home/jon/bin/mysql-5.7/
...
tmpdir /tmp
transaction-alloc-block-size 8192
transaction-isolation REPEATABLE-READ
transaction-prealloc-size 4096
transaction-read-only FALSE
transaction-write-set-extraction OFF
updatable-views-with-limit YES
validate-user-plugins TRUE
verbose TRUE
wait-timeout 28800
Чтобы увидеть текущие значения системных переменных, фактически используемых сервером во время работы, подключитесь к нему и выполните данное утверждение:
mysql> SHOW VARIABLES;
Чтобы увидеть некоторые статистические и индикаторы состояния работающего сервера, выполните это утверждение:
mysql> SHOW STATUS;
Информация о системных переменных и состоянии также доступна с помощью команды mysqladmin:
$> mysqladmin variables
$> mysqladmin extended-status
Полное описание всех командных параметров, системных переменных и переменных состояния см. в следующих разделах:
Более подробная информация о мониторинге доступна из схемы Performance Schema; см. Главу 25, Схема производительности MySQL. Кроме того, схема MySQL sys представляет собой набор объектов, который предоставляет удобный доступ к данным, собранным схемой Performance Schema; см. Главу 26, Схема sys MySQL.
MySQL использует алгоритмы, которые очень масштабируемы, поэтому вы обычно можете работать с очень небольшим объемом памяти. Однако, как правило, лучшие результаты производительности достигаются при предоставлении MySQL большего объема памяти.
При настройке сервера MySQL две самые важные переменные для настройки — key_buffer_size и table_open_cache. Вам следует убедиться, что вы правильно установили эти значения, прежде чем пытаться изменить любые другие переменные.
В следующих примерах приведены некоторые типичные значения переменных для различных конфигураций выполнения.
-
Если у вас есть как минимум 1–2 ГБ памяти и много таблиц, и вы хотите максимальной производительности с умеренным количеством клиентов, используйте что-то вроде этого:
$>
mysqld_safe --key_buffer_size=384M --table_open_cache=4000 \--sort_buffer_size=4M --read_buffer_size=1M & -
Если у вас только 256 МБ памяти и только несколько таблиц, но вы все равно выполняете много сортировок, вы можете использовать что-то вроде этого:
$>
mysqld_safe --key_buffer_size=64M --sort_buffer_size=1MЕсли имеется очень много одновременных подключений, могут возникнуть проблемы со свопингом, если mysqld не настроен на использование очень небольшого объема памяти для каждого подключения. mysqld работает лучше, если у вас достаточно памяти для всех подключений.
-
При небольшом объеме памяти и большом количестве подключений используйте что-то вроде этого:
$>
mysqld_safe --key_buffer_size=512K --sort_buffer_size=100K \--read_buffer_size=100K &Или даже это:
$>
mysqld_safe --key_buffer_size=512K --sort_buffer_size=16K \--table_open_cache=32 --read_buffer_size=8K \--net_buffer_length=1K &
Если вы выполняете GROUP BY или ORDER BY операции над таблицами, которые значительно больше доступной памяти, увеличьте значение read_rnd_buffer_size, чтобы ускорить чтение строк после операций сортировки.
Если вы указываете параметр в командной строке для mysqld или mysqld_safe, он действует только для этого запуска сервера. Чтобы использовать параметр каждый раз при запуске сервера, поместите его в файл параметров. См. Раздел 4.2.2.2, «Использование файлов параметров».
© 2025 Oracle
Licensed under the GPLv2 License.