Spec-Zone.ru › MySQL 5.7

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

Полное описание всех командных параметров, системных переменных и переменных состояния см. в следующих разделах:

  • Раздел 5.1.6, «Командные параметры сервера»

  • Раздел 5.1.7, «Системные переменные сервера»

  • Раздел 5.1.9, «Переменные состояния сервера»

Более подробная информация о мониторинге доступна из схемы 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.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/server-configuration.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API