Настройки MySQL®
Для кластера Managed Service for MySQL® можно задать настройки, которые относятся к MySQL®. Часть настроек задается на уровне кластера, часть — на уровне пользователя.
Метки рядом с названием настройки позволяют определить, с помощью какого интерфейса задается значение этой настройки: консоль управления, CLI, API или Terraform. Метка Все интерфейсы
указывает, что поддерживаются все перечисленные интерфейсы.
В зависимости от выбранного интерфейса, одна и та же настройка будет представлена по-разному. Например, Innodb buffer pool size в консоли управления соответствует:
innodb_buffer_pool_size
в gRPC, CLI или Terraform;innodbBufferPoolSize
в REST API.
Зависимость настроек от класса хостов
Значения некоторых настроек MySQL® могут быть автоматически скорректированы при изменении класса хостов:
- Если значения не были заданы или не подходят новому классу, будут применены настройки по умолчанию для этого класса.
- Если заданные вручную настройки подходят для нового класса, они не будут изменены.
Список настроек, зависящих от класса хостов:
Настройки СУБД уровня кластера
-
Audit log
Все интерфейсы
Управляет записью лога аудита MySQL®.
По умолчанию запись лога аудита выключена.
Подробнее см. в документации MySQL®
. -
Auto increment
Все интерфейсы
Задает интервал между значениями столбцов с атрибутом
AUTO_INCREMENT
.Минимальное значение —
1
, максимальное значение —65535
, по умолчанию —1
.Подробнее см. в документации MySQL®
. -
Auto increment offset
Все интерфейсы
Задает начальное значение для столбцов с атрибутом
AUTO_INCREMENT
. Эта настройка игнорируется, если ее значение больше значения настройки Auto increment.Минимальное значение —
1
, максимальное значение —65535
, по умолчанию —1
.Подробнее см. в документации MySQL®
. -
Binlog cache size
Все интерфейсы
Размер кеша (в байтах) для хранения изменений бинарного лога
во время транзакции.Минимальное значение —
4096
(4 КБ), максимальное значение —67108864
(64 МБ), по умолчанию —32768
(32 КБ).Подробнее см. в документации MySQL®
. -
Binlog group commit sync delay
Все интерфейсы
Задержка перед синхронизацией бинарного лога с диском при операции
COMMIT
для бинарного лога. Чтобы синхронизировать с диском больше транзакций за раз, задайте задержку больше нуля. Это снизит общее время, затрачиваемое на операциюCOMMIT
для группы транзакций.Минимальное значение —
0
(нет задержки), максимальное значение —1000000
(одна секунда), по умолчанию —0
.Подробнее см. в документации MySQL®
. -
Binlog row image
Все интерфейсы
Способ записи образов строк (row images) в бинарный лог при построчной репликации (row-based replication):
FULL
(по умолчанию) — все столбцы записываются как в образ «до», так и в образ «после»;MINIMAL
— в образ «до» записываются только столбцы, требуемые для идентификации строк, которые нужно изменить; в образ «после» записываются только столбцы, для которых было задано значение с помощью SQL-выражения или операции автоинкремента.NOBLOB
— все столбцы записываются в образы «до» и «после» (как в способеFULL
), за исключением столбцовBLOB
иTEXT
, которые либо не изменились, либо не требуются для идентификации строк.
Подробнее см. в документации MySQL®
. -
Binlog rows query log events
Все интерфейсы
Управляет записью информационных событий (например, событий лога запросов) в бинарный лог.
По умолчанию запись событий в бинарный лог выключена.
Подробнее см. в документации MySQL®
. -
Binlog transaction dependency tracking
Консоль управления
CLI
API
Схема для вычисления логических временных меток, с помощью которых реплики определяют, какие транзакции могут выполняться параллельно. Используется при генерации информации о зависимостях, которая записывается в бинарный лог при включенной многопоточной репликации (Slave parallel workers) с политикой Slave parallel type
LOGICAL_CLOCK
.Доступные значения:
-
COMMIT_ORDER
(по умолчанию) — две транзакции считаются независимыми, если интервал времени фиксации первой транзакции пересекается с интервалом времени фиксации второй транзакции. -
WRITESET
— схема основана наCOMMIT_ORDER
. Дополнительно к ней две транзакции считаются конфликтующими, если есть некоторое число (хэш), которое встречается в наборах записи обеих транзакций. -
WRITESET_SESSION
— две транзакции считаются зависимыми, если выполняется хотя бы одно из условий:- Транзакции зависимы в соответствии со схемой
WRITESET
. - Транзакции были зафиксированы в одном сеансе пользователя.
- Транзакции зависимы в соответствии со схемой
Подробнее см. в документации MySQL®
. -
-
Character set server
Все интерфейсы
Кодировка
, которую кластер MySQL® использует при работе с данными и обмене информацией с клиентами MySQL®. Выбор кодировки влияет на работу SQL-функций для манипуляций со строками и другие возможности.По умолчанию:
utf8mb4
.Подробнее см. в документации MySQL®
. -
Collation server
Все интерфейсы
Алгоритм сравнения символов
(collation), который кластер MySQL® использует при работе с данными и обмене информацией с клиентами MySQL®. Выбор алгоритма влияет на работу SQL-функций для сортировки, манипуляций со строками и другие возможности.По умолчанию:
utf8mb4_0900_ai_ci
.Подробнее см. в документации MySQL®
. -
Default authentication plugin
Все интерфейсы
Плагин аутентификации, используемый в кластере Managed Service for MySQL®:
mysql_native_password
— метод аутентификации, который использовался в MySQL® до внедрения плагинов аутентификации;sha256_password
— аутентификация с использованием алгоритма хэширования SHA-256 для паролей;caching_sha2_password
(по умолчанию) — аналогиченsha256_password
, использует кеширование на стороне сервера для лучшей производительности и предоставляет некоторые дополнительные возможности.
Подробнее см. в документации MySQL®
. -
Default time zone
Все интерфейсы
Часовой пояс сервера.
По умолчанию:
Europe/Moscow
.Подробнее см. в документации MySQL®
. -
Explicit defaults for timestamp
Все интерфейсы
Управляет нестандартными значениями по умолчанию и обработкой
NULL
в столбцахTIMESTAMP
.По умолчанию настройка включена (нестандартное поведение запрещено).
Подробнее см. в документации MySQL®
. -
General log
Все интерфейсы
Управляет записью основного лога запросов MySQL®.
По умолчанию запись основного лога запросов выключена.
Подробнее см. в документации MySQL®
. -
Group concat max len
Все интерфейсы
Максимальная длина (в байтах) результата функции GROUP_CONCAT()
.Минимальное значение —
4
, максимальное значение —33554432
(32 МБ), по умолчанию —1024
(1 КБ).Подробнее см. в документации MySQL®
-
Innodb adaptive hash index
Все интерфейсы
Управляет адаптивным хэш-индексом
InnoDB. Для некоторых видов нагрузки на базу данных может быть полезно отключение этого индекса. Документация MySQL® рекомендует провести нагрузочное тестирование на реальных данных, чтобы определить необходимость включения или отключения адаптивного хэш-индекса.По умолчанию адаптивный хэш-индекс включен.
Подробнее см. в документации MySQL®
. -
Innodb buffer pool size
Все интерфейсы
Размер буфера InnoDB (в байтах), который используется для кеширования данных таблиц и индексов. Буфер большого размера приводит к снижению количества операций ввода-вывода при многократном обращении к одним и тем же данным в таблице.
Минимальное значение —
134217728
(128 МБ). Максимальное значение и значение по умолчанию зависят от выбранного класса хостов и задаются в соответствии с таблицей:Количество ГБ RAM на хосте Значение по умолчанию Максимальное значение 2 268435456
(0,25 ГБ)536870912
(0,5 ГБ)4 1610612736
(1,5 ГБ)2684354560
(2,5 ГБ)≥ 8 0,5 × RAM
0,8 × RAM
Подробнее см. в рекомендациях по настройке параметра и в документации MySQL®
. -
Innodb compression level
Консоль управления
CLI
API
Уровень сжатия
zlib
, используемый для сжатых таблиц и индексов InnoDB.Минимальное значение —
0
, максимальное значение —9
, по умолчанию —6
.Подробнее см. в документации MySQL®
. -
Innodb flush log at trx commit
Все интерфейсы
Определяет поведение MySQL® для операций подтверждения транзакций (
COMMIT
):1
(по умолчанию) — строгое следование принципам ACID . Логи пишутся и сбрасываются на диск при подтверждении каждой транзакции.2
— логи пишутся при подтверждении каждой транзакции, но сбрасываются на диск раз в секунду. В случае сбоя данные транзакций, логи для которых не были сброшены на диск, могут быть утеряны.
Подробнее см. в документации MySQL®
. -
Innodb ft max token size
Все интерфейсы
Максимальная длина слов, хранящихся в индексе InnoDB
FULLTEXT
.Минимальное значение —
10
, максимальное значение —84
, по умолчанию —84
.Подробнее см. в документации MySQL®
. -
Innodb ft min token size
Все интерфейсы
Минимальная длина слов, хранящихся в индексе InnoDB
FULLTEXT
.Минимальное значение —
0
, максимальное значение —16
, по умолчанию —3
.Подробнее см. в документации MySQL®
. -
Innodb io capacity
Все интерфейсы
Количество операций ввода-вывода в секунду (IOPS), доступное всем фоновым операциям InnoDB. Эта настройка влияет на процессы, использующие ввод-вывод (например, сброс данных на диск) и может использоваться для ограничения количества операций ввода-вывода.
Минимальное значение —
100
, максимальное значение —100000
, по умолчанию —200
.Подробнее см. в документации MySQL®
. -
Innodb io capacity max
Все интерфейсы
Максимальное количество операций ввода-вывода в секунду (IOPS), доступное всем фоновым операциям InnoDB. Если хост не успевает сбрасывать данные на диск, то InnoDB может начать сбрасывать данные на диск чаще, чем установленный настройкой Innodb io capacity порог IOPS, не превышая заданного максимального ограничения на IOPS.
Минимальное значение —
100
, максимальное значение —100000
, по умолчанию —2000
.Подробнее см. в документации MySQL®
. -
Innodb lock wait timeout
Все интерфейсы
Максимальное время ожидания блокировки строки (в секундах) для транзакции InnoDB. Если время ожидания истекло, то возвращается ошибка, и текущее выражение SQL откатывается (вся транзакция не откатывается).
Значение настройки можно уменьшить для OLTP-приложений и приложений, которые взаимодействуют с пользователем в интерактивном режиме. Значение настройки можно увеличить, если в приложении есть длительные операции, например, ожидающие завершения больших запросов
INSERT
иUPDATE
в процессе трансформации большого массива данных из хранилища данных.Минимальное значение —
1
, максимальное значение —28800
(480 минут или 8 часов), по умолчанию —50
.Подробнее см. в документации MySQL®
. -
Innodb log buffer size
Все интерфейсы
Размер буфера (в байтах), который InnoDB использует при записи логов на диск. Большой буфер позволяет выполнять большие транзакции без записи лога на диск до подтверждения транзакции, что позволяет экономить ресурсы ввода-вывода.
Минимальное значение —
1048576
(1 МБ), максимальное значение —268435456
(256 МБ), по умолчанию —16777216
(16 МБ).Подробнее см. в документации MySQL®
. -
Innodb log file size
Все интерфейсы
Размер одного файла redo-логов InnoDB (в байтах). Чем больше значение, тем реже требуется сбрасывать контрольные точки
(checkpoints) на диск, что позволяет экономить ресурсы ввода-вывода. Однако большой размер лог-файлов приводит к более медленному восстановлению после сбоев.Минимальное значение —
268435456
(256 МБ), максимальное значение —4294967296
(4 ГБ), по умолчанию —268435456
(256 МБ).Подробнее см. в документации MySQL®
. -
Innodb lru scan depth
Консоль управления
API
Количество свободных страниц, которое Innodb старается сохранить в каждом буферном пуле, чтобы ускорить операции чтения и создания страниц.
Минимальное значение —
100
, максимальное —4294967295
, значение по умолчанию —1024
.Чем выше значение настройки, тем больше она влияет на производительность и память кластера:
- Увеличивайте значение, только если при типичной рабочей нагрузке у кластера есть запасные ресурсы для ввода-вывода данных.
- Уменьшайте значение, если не хватает ресурсов при выставленном значении.
В большинстве случаев значение по умолчанию подходит.
Подробнее см. в блоге Percona и документации MySQL®:
-
Innodb numa interleave
Все интерфейсы
Управляет политикой NUMA Interleave
при выделении памяти для буфера InnoDB.По умолчанию эта политика выключена.
Подробнее см. в документации MySQL®
. -
Innodb online alter log max size
Все интерфейсы
Размер временных лог-файлов Innodb (в байтах), получаемых во время онлайн DDL-запросов
. Увеличение значения позволяет использовать больше операций DML во время DDL-запросов, но также увеличивает период времени в конце DDL-запроса, в течение которого таблица заблокирована для применения данных из лога.Минимальное значение —
65536
(64 КБ), максимальное значение —107374182400
(100 ГБ), по умолчанию —134217728
(128 МБ).Подробнее см. в документации MySQL®
. -
Innodb page size
Все интерфейсы
Размер страницы для табличных пространств InnoDB (в байтах). Эту настройку нельзя изменить после создания кластера.
Допустимые значения:
4096
(4 КБ),8192
(8 КБ),16384
(16 КБ),32768
(32 КБ),65536
(64 КБ). По умолчанию —16384
(16 КБ).Подробнее см. в документации MySQL®
. -
Innodb print all deadlocks
Все интерфейсы
Управляет выводом всей информации о взаимных блокировках
в лог ошибок. Если эта настройка выключена, то при выполнении командыSHOW ENGINE INNODB STATUS
будет выведена информация только о последней блокировке.По умолчанию вывод всей информации о взаимных блокировках выключен.
Подробнее см. в документации MySQL®
. -
Innodb purge threads
Все интерфейсы
Количество потоков ввода-вывода InnoDB, используемых для операций очистки
(purge). Увеличение количества этих потоков полезно в системах, где операции манипуляции с данными (INSERT
,UPDATE
,DELETE
) выполняются над несколькими таблицами.Минимальное значение —
1
, максимальное значение —16
, по умолчанию —4
.Подробнее см. в документации MySQL®
. -
Innodb read io threads
Все интерфейсы
Количество потоков ввода-вывода InnoDB, используемых для операций чтения.
Минимальное значение —
1
, максимальное значение —16
, по умолчанию —4
.Подробнее см. в документации MySQL®
. -
Innodb status output
Консоль управления
Управляет выводом стандартного монитора
InnoDB.По умолчанию стандартный монитор выключен.
Подробнее см. в документации MySQL®
. -
Innodb strict mode
Консоль управления
Управляет строгим режимом
Innodb. При включении определенные условия, которые обычно рассматриваются как предупреждения, считаются ошибками.По умолчанию строгий режим Innodb включен.
Подробнее см. в документации MySQL®
. -
Innodb temp data file max size
Все интерфейсы
Максимальный размер временного табличного пространства
InnoDB (в байтах).Минимальное значение —
0
(не использовать временное табличное пространство), максимальное значение —107374182400
(100 ГБ), по умолчанию —0
.Подробнее см. в документации MySQL®
. -
Innodb thread concurrency
Все интерфейсы
Максимальное число потоков, которые могут исполняться внутри InnoDB.
Минимальное значение —
0
(ограничения отсутствуют), максимальное значение —1000
, по умолчанию —0
.Подробнее см. в документации MySQL®
. -
Innodb write io threads
Все интерфейсы
Количество потоков ввода-вывода InnoDB, используемых для операций записи.
Минимальное значение —
1
, максимальное значение —16
, по умолчанию —4
.Подробнее см. в документации MySQL®
. -
Interactive timeout
Все интерфейсы
Интервал времени (в секундах), в течение которого сервер ожидает активности при интерактивном соединении, прежде чем закрыть его.
Минимальное значение —
600
(10 минут), максимальное значение —86400
(1 сутки), по умолчанию —28800
(8 часов).Подробнее см. в документации MySQL®
. -
Join buffer size
Все интерфейсы
Минимальный размер буфера (в байтах), который используется для:
- сканирования простого индекса;
- сканирования индекса диапазона;
- полного сканирования таблиц (для операций
JOIN
, не использующих индексы).
Один буфер указанного размера выделяется на каждую операцию объединения двух таблиц. Увеличьте значение этой настройки, чтобы ускорить операции объединения таблиц, для которых невозможно добавить индексы.
Минимальное значение —
1024
(1 КБ), максимальное значение —16777216
(16 МБ), по умолчанию —262144
(256 КБ).Подробнее см. в документации MySQL®
. -
Lock wait timeout
Консоль управления
CLI
API
Максимальное время ожидания (в секундах) при попытке получить блокировку метаданных
.Минимальное значение —
1
, максимальное значение —31536000
(1 год), по умолчанию —31536000
.Подробнее см. в документации MySQL®
. -
Log error verbosity
Консоль управления
Определяет тип событий, записываемых в логе ошибок:
2
— ошибки и предупреждения.3
(по умолчанию) — ошибки, предупреждения и информационные сообщения.
Подробнее см. в документации MySQL®
. -
Log slow filter
Консоль управления
CLI
API
Фильтр для лога медленных запросов по типу запроса. Представляет собой строку, которая может содержать любую комбинацию следующих значений, разделенных запятой:
full_scan
— в лог попадут запросы, которые выполняют полное сканирование таблицы.full_join
— в лог попадут запросы, которые выполняют полное объединение (FULL JOIN, без использования индексов).tmp_table
— в лог попадут запросы, которые выполняют создание неявной внутренней временной таблицы.tmp_table_on_disk
— в лог попадут запросы, которые выполняют сохранение временной таблицы на диск.filesort
— в лог попадут запросы, которые выполняют сортировку файлов.filesort_on_disk
— в лог попадут запросы, которые выполняют сортировку файлов на диске.
Если значение фильтра задано, в лог медленных запросов попадают только те запросы, типы которых представлены в фильтре.
Значение по умолчанию —
""
(пустая строка, фильтрация запросов выключена).Подробнее см. в документации Percona
. -
Log slow rate limit
Все интерфейсы
Настройка указывает, какая часть запросов будет попадать в лог медленных запросов. В зависимости от значения настройки Log slow rate type, настройка применяется к отдельным запросам (
QUERY
) или к сессиям (SESSION
).Если установлено значение
1
, то в лог будут попадать каждый запрос или сессия, которые признаны медленными. При других значениях будет логироваться каждый N-ный запрос или сессия, что снизит нагрузку на кластер.Если время обработки запроса превышает значение Slow query log always write time, запрос будет записан в лог медленных запросов независимо от значения Log slow rate limit.
Минимальное значение —
1
, максимальное значение —1000
, по умолчанию —1
.Подробнее см. в документации Percona
. -
Log slow rate type
Все интерфейсы
Задает тип записей лога медленных запросов для настройки Log slow rate limit:
query
— на уровне запроса;session
— на уровне сессии.
Значение по умолчанию —
query
.Подробнее см. в документации Percona
. -
Log slow sp statements
Все интерфейсы
Управляет записью выражений, выполняемых хранимыми процедурами, в лог медленных запросов.
По умолчанию запись выражений включена.
Подробнее см. в документации Percona
. -
Long query time
Все интерфейсы
Время обработки запроса (в секундах), при превышении которого запрос будет считаться медленным. Чем меньше задано значение настройки, тем больше запросов будет считаться медленными.
Минимальное значение —
0
, максимальное значение —3600
(1 час), по умолчанию —10
.Подробнее см. в документации MySQL®
. -
Lower case table names
Все интерфейсы
Определяет тип хранения и сравнения имен таблиц:
0
(по умолчанию) — имена таблиц сохраняются без изменений. Сравнения чувствительны к регистру.1
— имена таблиц сохраняются в нижнем регистре. Сравнения не чувствительны к регистру.
Эту настройку нельзя изменить после создания кластера.
Подробнее см. в документации MySQL®
. -
Max allowed packet
Все интерфейсы
Максимальный размер (в байтах) одного пакета, строки или параметра, отправляемого функцией mysql_stmt_send_long_data()
.По умолчанию задан небольшой размер, что позволяет отбрасывать некорректные пакеты, которые обычно больше. Увеличьте значение настройки, если вы используете большие BLOB-столбцы или длинные строки.
Минимальное значение —
1024
(1 КБ), максимальное значение —134217728
(128 МБ), по умолчанию —16777216
(16 МБ).Подробнее см. в документации MySQL®
. -
Max connections
Все интерфейсы
Максимальное количество одновременных подключений, которые может принять хост MySQL®.
Минимальное значение —
10
, максимальное значение и значение по умолчанию зависят от выбранного класса хостов и задаются формулами:- Максимальное значение —
<количество_МБ_RAM_на_одном_хосте> / 8
. - Значение по умолчанию —
<количество_МБ_RAM_на_одном_хосте> / 32
, но не меньше100
.
Подробнее см. в документации MySQL®
. - Максимальное значение —
-
Max digest length
Консоль управления
Размер памяти (в байтах), зарезервированной для вычисления дайджестов нормализованных выражений
.Минимальное значение —
1024
(1 КБ), максимальное значение —8192
(8 КБ), по умолчанию —1024
(1 КБ).Подробнее см. в документации MySQL®
. -
Max execution time
Все интерфейсы
Таймаут выполнения SQL-запросов
SELECT
в миллисекундах.Минимальное значение —
0
, в этом случае нет ограничений на время выполнения запросов. Максимальное значение —4294967295
.Подробнее см. в документации MySQL®
. -
Max heap table size
Все интерфейсы
Максимальный размер пользовательских MEMORY-таблиц
(в байтах). Изменение значения этой настройки не влияет на уже существующие MEMORY-таблицы. Эта настройка также используется совместно с Tmp table size для ограничения размера внутренних таблиц, хранящихся в оперативной памяти.Минимальное значение —
16384
(16 КБ), максимальное значение —134217728
(128 МБ), по умолчанию —16777216
(16 МБ).Подробнее см. в документации MySQL®
. -
Max prepared stmt count
Консоль управления
CLI
API
Максимальное количество подготовленных запросов на сервере.
Может использоваться для защиты от DoS-атак, которые переполняют память сервера большим количеством подготовленных запросов.
Минимальное значение —
0
, максимальное значение —4194304
, по умолчанию —16382
.Подробнее см. в документации MySQL®
. -
Max sp recursion depth
Консоль управления
CLI
API
Максимальное количество рекурсивных вызовов хранимых процедур.
Минимальное значение —
0
(рекурсия выключена), максимальное значение —255
, по умолчанию —0
.Подробнее см. в документации MySQL®
. -
Mdb offline mode disable lag
Все интерфейсы
Задержка репликации (в секундах) перед переключением MySQL® в режим
offline_mode = OFF
. Значение должно быть меньше, чем значение настройки Mdb offline mode enable lag.Минимальное значение —
60
(1 минута), максимальное значение —86400
(1 сутки), по умолчанию —300
(5 минут). -
Mdb offline mode enable lag
Все интерфейсы
Задержка репликации (в секундах) перед переключением MySQL® в режим
offline_mode = ON
, чтобы пользователи получили актуальные данные.Минимальное значение —
600
(10 минут), максимальное значение —432000
(5 суток), по умолчанию —86400
(1 сутки). -
Mdb preserve binlog bytes
Все интерфейсы
Размер бинарных логов (в байтах) для хранения на хостах кластера.
Минимальное значение —
1073741824
(1 ГБайт), максимальное значение —107374182400
(100 ГБайт), по умолчанию —1073741824
(1 ГБайт). -
Mdb priority choice max lag
Все интерфейсы
Задержка репликации (в секундах) перед изменением роли хоста кластера с реплики на мастер. Значение должно быть меньше, чем значение настройки Mdb offline mode enable lag.
Минимальное значение —
0
, максимальное значение —86400
(1 сутки), по умолчанию —60
(1 минута). -
Net read timeout
Все интерфейсы
Максимальное время ожидания чтения (в секундах) при передаче данных по сети.
Минимальное значение —
1
, максимальное значение —1200
(20 минут), по умолчанию —30
.Подробнее см. в документации MySQL®
. -
Net write timeout
Все интерфейсы
Максимальное время ожидания записи (в секундах) при передаче данных по сети.
Минимальное значение —
1
, максимальное значение —1200
(20 минут), по умолчанию —60
.Подробнее см. в документации MySQL®
. -
Optimizer search depth
Консоль управления
CLI
API
Максимальная глубина поиска, выполняемого оптимизатором запросов.
Если значение настройки выше, чем количество отношений в запросе, будет сформирован наилучший план запроса, но на создание этого плана уйдет больше времени. Если значение ниже, план выполнения запроса сформируется быстрее, но может быть неоптимальным.
Минимальное значение —
0
(система выберет глубину поиска автоматически), максимальное значение —62
, по умолчанию —62
.Подробнее см. в документации MySQL®
. -
Optimizer switch
Консоль управления
CLI
API
Строка с набором флагов
, каждый из которых включает или отключает соответствующее поведение оптимизатора.Подробнее см. в документации MySQL®
. -
Range optimizer max mem size
Все интерфейсы
Максимальное потребление памяти (в байтах) оптимизатором диапазона.
Минимальное значение —
1048576
(1 МБ), максимальное значение —268435456
(256 МБ), по умолчанию —8388608
(8 МБ).Подробнее см. в документации MySQL®
. -
Regexp time limit
Все интерфейсы
Ограничение на количество шагов при поиске соответствия (match) с помощью REGEXP_LIKE()
и других подобных функций для работы с регулярными выражениями . Таким образом, эта настройка влияет на время выполнения косвенно.Минимальное значение —
0
(нет ограничений), максимальное значение —1048576
. По умолчанию:0
.Подробнее см. в документации MySQL®
. -
Replication optimize for static plugin config
Консоль управления
API
Разрешает репликам использовать общие блокировки (shared locks) при полусинхронной репликации
. Если настройка не включена, реплики используют большее количество блокировок. В результате возрастает конкуренция между репликами в попытках получить блокировки, производительность кластера снижается.Настройка улучшает производительность реплик и хостов-источников репликации, так как они используют единый механизм блокировок.
Включите эту настройку вместе с настройкой Replication sender observe commit only. Так производительность кластера будет выше даже при большом количестве реплик.
По умолчанию настройка выключена.
Подробнее см. в документации MySQL®
. -
Replication sender observe commit only
Консоль управления
API
Включает ограничение обратных вызовов (callbacks) при полусинхронной репликации
. Если их не ограничивать, растет число блокировок и конкуренция за них между репликами. В результате производительность кластера ухудшается.Настройка улучшает производительность реплик и хостов-источников репликации, так как они используют единый механизм блокировок.
Включите эту настройку вместе с настройкой Replication optimize for static plugin config. Так производительность кластера будет выше даже при большом количестве реплик.
По умолчанию настройка выключена.
Подробнее см. в документации MySQL®
. -
Rpl semi sync master wait for slave count
Все интерфейсы
Количество реплик, от которых мастер ожидает ответа при полусинхронной репликации, прежде чем подтвердить транзакцию (
COMMIT
).Минимальное значение —
1
, максимальное значение —2
, по умолчанию —1
.Подробнее см. в документации MySQL®
. -
Slave parallel type
Все интерфейсы
Политика для определения того, какие транзакции могут выполняться параллельно на реплике при включенной многопоточной репликации (такая репликация включается настройкой Slave parallel workers):
LOGICAL_CLOCK
— транзакции, являющиеся частью группового коммита для одного и того же бинарного лога на источнике, выполняются параллельно на реплике.DATABASE
(по умолчанию) — транзакции, которые изменяют разные базы данных, выполняются параллельно.
Подробнее см. в документации MySQL®
. -
Slave parallel workers
Все интерфейсы
Устанавливает количество потоков для параллельного выполнения транзакций репликации на реплике.
Минимальное значение —
0
(многопоточная репликация на реплике выключена), максимальное значение —64
, по умолчанию —8
.Подробнее см. в документации MySQL®
. -
Slow query log
Все интерфейсы
Разрешает ведение лога медленных запросов. Запрос считается медленным, если время его выполнения превышает заданное настройкой Long query time.
Допустимые значения:
0
илиOFF
;1
илиON
.
Значение по умолчанию —
OFF
.Подробнее см. в документации MySQL®
. -
Slow query log always write time
Все интерфейсы
Время обработки запроса (в секундах), при превышении которого запрос будет безоговорочно записан в лог медленных запросов, игнорируя настройку Log slow rate limit.
Минимальное значение —
0
, максимальное значение —3600
(1 час), по умолчанию —10
.Подробнее см. в документации Percona
. -
Sort buffer size
Все интерфейсы
Размер буфера (в байтах), который используется для сортировок в памяти.
Минимальное значение —
32768
(32 КБ), максимальное значение —16777216
(16 МБ), по умолчанию —262144
(256 КБ).Подробнее см. в документации MySQL®
. -
Sql mode
Все интерфейсы
Режимы SQL для кластера MySQL®:
-
ALLOW_INVALID_DATES
— не выполнять полную проверку корректности дат. В этом режиме проверяется, что месяц находится в диапазоне от 1 до 12, а день в диапазоне от 1 до 31. Некорректные даты (например,2004-04-31
) преобразуются в0000-00-00
с выдачей предупреждения (warning). -
ANSI_QUOTES
— воспринимать кавычки"
как кавычки для идентификаторов, но не для строк. В этом режиме для строк следует использовать одинарные кавычки'
вместо двойных кавычек"
. -
ERROR_FOR_DIVISION_BY_ZERO
— операция деления на ноль возвращаетNULL
с выдачей предупреждения (warning). Этот режим SQL является устаревшим (deprecated). -
HIGH_NOT_PRECEDENCE
— повышает приоритет операции отрицания (NOT
) при разборе логических выражений. В этом режиме выражениеNOT a BETWEEN b AND c
будет интерпретировано как(NOT a) BETWEEN b AND c
вместоNOT (a BETWEEN b AND c)
. -
IGNORE_SPACE
— разрешает пробелы между именем функции и открывающей скобкой(
. Это приводит к тому, что имена встроенных функций интерпретируются как ключевые слова. Идентификаторы объектов, которые совпадают с именами таких функций, должны быть окружены кавычками. -
NO_AUTO_VALUE_ON_ZERO
— только вставкаNULL
в столбец с атрибутомAUTO_INCREMENT
приводит к генерации нового значения для столбца. Обычно новое значение генерируется при вставке0
илиNULL
, поэтому этот режим полезен, если в таком столбце требуется явно хранить значение0
. -
NO_BACKSLASH_ESCAPES
— выключает использование обратного слеша\
в качестве escape-символа. Обратный слеш в этом режиме воспринимается как обычный символ. -
NO_DIR_IN_CREATE
— директивыINDEX DIRECTORY
иDATA DIRECTORY
игнорируются при создании таблицы. -
NO_ENGINE_SUBSTITUTION
— не подставлять движок по умолчанию автоматически в случае недоступности движка, указанного вCREATE TABLE
илиALTER TABLE
, и выдать соответствующую ошибку. -
NO_UNSIGNED_SUBTRACTION
— разрешен отрицательный результат при вычитании целых чисел, одно из которых беззнаковое (unsigned). -
NO_ZERO_DATE
— влияет на использование даты0000-00-00
:- Если strict SQL mode выключен: использование даты
0000-00-00
допустимо, вставка такой даты приведет к выдаче предупреждения (warning). - Если strict SQL mode включен: использование даты
0000-00-00
недопустимо, попытка вставки такой даты приведет к ошибке.
Этот режим SQL является устаревшим (deprecated).
- Если strict SQL mode выключен: использование даты
-
NO_ZERO_IN_DATE
— влияет на использование дат с нулевыми месяцем или днем:- Если strict SQL mode выключен: даты с нулевыми месяцем или днем вставляются в виде
0000-00-00
с выдачей предупреждения (warning). - Если strict SQL mode включен: использование даты с нулевыми месяцем или днем недопустимо, попытка вставки такой даты приведет к ошибке.
Этот режим SQL является устаревшим (deprecated).
См. также: NO_ZERO_DATE.
- Если strict SQL mode выключен: даты с нулевыми месяцем или днем вставляются в виде
-
ONLY_FULL_GROUP_BY
— запрещает выполнение запросов, в которыхSELECT
,HAVING
илиORDER BY
ссылаются на неагрегированные столбцы, которые не упомянуты вGROUP BY
(поведение в стиле SQL-92 ). -
PAD_CHAR_TO_FULL_LENGTH
— выравнивать строки в столбцахCHAR
пробелами до полной длины. Это не распространяется на столбцыVARCHAR
. -
PIPES_AS_CONCAT
— воспринимать||
как оператор конкатенации (эквивалент CONCAT() ), а не синоним оператора OR . -
REAL_AS_FLOAT
— восприниматьREAL
как синоним дляFLOAT
(по умолчанию MySQL® воспринимаетREAL
как синоним дляDOUBLE
). -
STRICT_ALL_TABLES
— включить строгий режим (strict SQL mode ) для всех движков. -
STRICT_TRANS_TABLES
— включить строгий режим (strict SQL mode ) для всех транзакционных движков и, если возможно, для нетранзакционных движков. -
TIME_TRUNCATE_FRACTIONAL
— включает обрезку дробной части при вставке значенийTIME
,DATE
илиTIMESTAMP
в столбец, у которого меньшее число знаков в дробной части (по умолчанию MySQL® округляет значение до нужного количества знаков, а не обрезает). -
ANSI
— комбинация режимов:REAL_AS_FLOAT
;PIPES_AS_CONCAT
;ANSI_QUOTES
;IGNORE_SPACE
;ONLY_FULL_GROUP_BY
.
-
TRADITIONAL
— комбинация режимов:STRICT_ALL_TABLES
;STRICT_TRANS_TABLES
;NO_ZERO_DATE
;NO_ZERO_IN_DATE
;ERROR_FOR_DIVISION_BY_ZERO
;NO_ENGINE_SUBSTITUTION
;
Можно выбрать несколько режимов из списка или полностью выключить все настройки SQL Mode.
По умолчанию используется следующий набор режимов SQL:
ERROR_FOR_DIVISION_BY_ZERO
;NO_ENGINE_SUBSTITUTION
;NO_ZERO_DATE
;NO_ZERO_IN_DATE
;ONLY_FULL_GROUP_BY
;STRICT_TRANS_TABLES
.
Подробнее см. в документации MySQL®
. -
-
Sync binlog
Все интерфейсы
Частота синхронизации бинарного лога с диском:
0
— синхронизация отключена, MySQL® полагается на операционную систему, которая периодически сбрасывает (flush) содержимое бинарного лога на диск, как для любого другого файла. Этот способ обеспечивает максимальную производительность. Данные могут быть утеряны в случае сбоя питания или операционной системы: транзакции могут быть подтверждены, но еще не синхронизированы с бинарным логом.1
— бинарный лог синхронизируется с диском перед подтверждением транзакций. Это наиболее безопасный способ, который, однако, может отрицательно влиять на производительность из-за большого количества операций записи. В случае сбоя питания или операционной системы транзакции, не попавшие в бинарный лог, находятся в состоянии подготовки (prepared state). Это позволяет автоматически восстановиться после сбоя и откатить (rollback) транзакции. Гарантируется, что ни одна транзакция из бинарного лога не будет утеряна.N
— бинарный лог синхронизируется с диском после сбораN
групп коммита (commit groups) для бинарного лога. В случае сбоя питания или операционной системы транзакции могут быть подтверждены, но еще не синхронизированы с бинарным логом. Этот способ может отрицательно влиять на производительность из-за большого количества операций записи. Чем выше значениеN
, тем выше и производительность, и риск потери данных.
Минимальное значение —
0
, максимальное значение —4096
, по умолчанию —1
.Подробнее см. в документации MySQL®
. -
Table definition cache
Все интерфейсы
Количество определений таблиц, которые можно поместить в соответствующий кеш. Если в базе данных большое количество таблиц, увеличьте значение этой настройки, чтобы повысить скорость открытия таблиц.
Минимальное значение —
400
, максимальное значение —524288
, по умолчанию —2000
.Подробнее см. в документации MySQL®
. -
Table open cache
Все интерфейсы
Размер кеша открытых таблиц для всех потоков. Если значение переменной Opened tables
велико и вы редко используете FLUSH_TABLES , увеличьте значение настройки.Увеличение значения этой настройки требует увеличения количества файловых дескрипторов для хостов кластера MySQL®.
Минимальное значение —
400
, максимальное значение —524288
, по умолчанию —4000
.Подробнее см. в документации MySQL®
. -
Table open cache instances
Все интерфейсы
Для повышения масштабируемости кеш открытых таблиц может быть разбит на более мелкие сегменты. Эта настройка задает количество таких сегментов.
Минимальное значение —
1
, максимальное значение —32
, по умолчанию —16
.Подробнее см. в документации MySQL®
. -
Thread cache size
Все интерфейсы
Количество потоков, которые кешируются для обработки новых сетевых соединений. При установке нового подключения сначала используются потоки из кеша, а потом создаются новые. Увеличьте значение этой настройки, чтобы повысить производительность в случае, когда устанавливается большое количество новых соединений.
Минимальное значение —
10
, максимальное значение —10000
. Значение по умолчанию зависит от выбранного класса хостов и вычисляется по формуле:max_connections / 10
Здесь
max_connections
— значение по умолчанию для настройки Max connections для выбранного класса хостов.Подробнее см. в документации MySQL®
. -
Thread stack
Все интерфейсы
Размер стека (в байтах) для каждого потока. Значение по умолчанию достаточно велико, чтобы обеспечить нормальную работу MySQL®. Слишком маленькое значение настройки ограничивает сложность SQL-выражений, глубину рекурсии для хранимых процедур и другие параметры, связанные с потреблением памяти.
Минимальное значение —
131072
(128 КБ), максимальное значение —16777216
(16 МБ), по умолчанию —196608
(192 КБ).Подробнее см. в документации MySQL®
. -
Tmp table size
Все интерфейсы
Максимальный размер временной таблицы в памяти (в байтах). При превышении этого размера таблица будет помещена на диск. Эта настройка не влияет на пользовательские MEMORY-таблицы. Увеличьте значение настройки, если вы выполняете много сложных запросов
GROUP BY
и хосты имеют достаточно оперативной памяти.Минимальное значение —
1024
(1 КБ), максимальное значение —134217728
(128 МБ), по умолчанию —16777216
(16 МБ).Подробнее см. в документации MySQL®
. -
Transaction isolation
Все интерфейсы
Уровень изоляции транзакций по умолчанию:
READ-COMMITTED
— запрос видит только те строки, которые были зафиксированы до начала его выполнения.REPEATABLE-READ
— все запросы в текущей транзакции видят только те строки, которые были зафиксированы перед первым выполненным в этой транзакции запросом на выборку или изменение данных.SERIALIZABLE
— уровень аналогиченREPEATABLE-READ
, за исключением того, что InnoDB неявно конвертируетSELECT
вSELECT ... FOR SHARE
, если autocommit выключен. Если autocommit включен, тоSELECT
находится в своей собственной транзакции в режимеread only
и может быть сериализован.
Подробнее см. в документации MySQL®
. -
Wait timeout
Все интерфейсы
Интервал времени (в секундах), в течение которого сервер ожидает активности при неинтерактивном соединении, прежде чем закрыть его.
Минимальное значение —
600
(10 минут), максимальное значение —86400
(1 сутки), по умолчанию —28800
(8 часов).Подробнее см. в документации MySQL®
.
Пользовательские настройки
Эти настройки действуют на уровне отдельного пользователя.
-
Authentication plugin
Консоль управления
CLI
Terraform
Плагин аутентификации. Определяет политику аутентификации пользователя.
Значение по умолчанию — не задано (действует настройка
Default authentication plugin
, задаваемая при создании кластера).Подробнее про плагины аутентификации см. в документации MySQL®
. -
Administrative privileges
Консоль управления
CLI
Terraform
Административные привилегии — права пользователя, которые действуют на уровне всего кластера баз данных.
Пользователю можно предоставить административные привилегии:
-
REPLICATION CLIENT
— разрешает использовать операторы:- SHOW MASTER STATUS
— предоставляет информацию о состоянии бинарных логов мастера. - SHOW REPLICA | SLAVE STATUS
— предоставляет информацию о состоянии основных параметров потока репликации. - SHOW BINARY LOGS
— выводит список бинарных логов на хосте кластера.
- SHOW MASTER STATUS
-
REPLICATION SLAVE
— позволяет подключиться к потоку репликации извне Yandex Cloud. Разрешает использовать операторы:- SHOW REPLICAS | SHOW SLAVE HOSTS
— выводит список зарегистрированных в данный момент реплик. - SHOW RELAYLOG EVENTS
— выводит события в логе ретрансляции реплики. - SHOW BINLOG EVENTS
— выводит события в бинарном логе.
- SHOW REPLICAS | SHOW SLAVE HOSTS
-
PROCESS
— позволяет использовать операторSHOW PROCESSLIST
и просматривать статус систем хранения данных (например,SHOW ENGINE INNODB STATUS
). Кроме того, в Managed Service for MySQL® эта привилегия предоставляет право на чтение таблиц системных баз данных mysql , performance_schema и sys .
Значение по умолчанию — не задано (у пользователя нет административных привилегий). Возможно предоставить несколько привилегий одновременно.
-
-
Connection limits
Консоль управления
CLI
Terraform
Раздел с настройками ограничений для пользователя.
-
Max connections per hour
Максимально допустимое для пользователя количество соединений в час.
Минимальное значение — 0 (нет ограничений).
Значение по умолчанию — не задано (нет ограничений). -
Max questions per hour
Максимально допустимое для пользователя количество запросов в час. Не считая запросов, выполняемых в рамках хранимых процедур.
Минимальное значение — 0 (нет ограничений).
Значение по умолчанию — не задано (нет ограничений). -
Max updates per hour
Максимально допустимое для пользователя количество запросов
UPDATE
в час.Минимальное значение — 0 (нет ограничений).
Значение по умолчанию — не задано (нет ограничений). -
Max user connections
Максимально допустимое для пользователя количество одновременных соединений.
Минимальное значение — 0 (нет ограничений).
Значение по умолчанию — не задано (действует общая настройка кластера max_user_connections ).
Подробнее см. в документации MySQL®
. -
Об управлении правами пользователей на доступ к объектам баз данных см. раздел Права пользователей.