MySQL / MariaDB конфиг my.cnf для крупных каталогов 100 000+ товаров (16-32 GB RAM)

Обновлено: Август 2026 Стек: MySQL 8.0 / 8.4, RAM 16-32 GB, NVMe RAID Проверено: Production-Ready

Эталонная конфигурация MySQL под 100 000+ SKU: 12-20 GB Buffer Pool, 8 инстансов пула, тюнинг соединений и многопоточного чтения.

Интерактивный генератор под ваши параметры
Параметры подставляются в код в реальном времени
/etc/mysql/my.cnf
# /etc/mysql/my.cnf
[mysqld]
# Enterprise Highload e-Commerce (100k+ товаров, 16-32 GB RAM)
max_connections = 400
back_log = 512
wait_timeout = 30
connect_timeout = 10

# InnoDB Buffer Pool (12 GB под данные и индексы)
innodb_buffer_pool_size = 12G
innodb_buffer_pool_instances = 8
innodb_log_file_size = 2G
innodb_log_buffer_size = 256M
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT

# NVMe IOPS
innodb_io_capacity = 4000
innodb_io_capacity_max = 8000
innodb_read_io_threads = 16
innodb_write_io_threads = 16
innodb_page_cleaners = 8

# Буферы
sort_buffer_size = 8M
read_buffer_size = 4M
read_rnd_buffer_size = 8M
join_buffer_size = 8M
tmp_table_size = 256M
max_heap_table_size = 256M

table_open_cache = 16000
table_definition_cache = 8000
open_files_limit = 262144

slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 0.8

Разбор ключевых директив конфигурации

Техническое обоснование директив и их прямое влияние на процессор (CPU), оперативную память (RAM) и дисковый ввод-вывод (NVMe I/O).

Директива / Блок Рекомендуемое значение Зачем нужно и системное влияние (CPU / RAM / I-O)
innodb_buffer_pool_instances = 8 8 инстансов Разбивает буферный пул на 8 независимых сегментов, полностью исключая блокировки мьютексов (mutex contention) при параллельных запросах сотен покупателей.

Рекомендуемые системные требования VDS под этот стек

Расчет минимальной и оптимальной конфигурации виртуального сервера для стабильной работы без сбоев.

Оптимальный сайзинг: 8-16 vCPU, 16-32 GB RAM, 200 GB NVMe
Расчетная нагрузка: Маркетплейс / Крупный ритейл 100k+ SKU
Timeweb Cloud
8 CPU / 16 GB NVMe
Процессор: 8-16 vCPU
Память RAM: 16-32 GB RAM
Накопитель: 200 GB NVMe
🔷 Selectel
8 vCPU / 16 GB RAM
Процессор: 8-16 vCPU
Память RAM: 16-32 GB RAM
Накопитель: 200 GB NVMe
🟠 Beget
Turbo 16 GB
Процессор: 8-16 vCPU
Память RAM: 16-32 GB RAM
Накопитель: 200 GB NVMe

Онлайн-утилиты SysKit для проверки этого сервера

Протестируйте корректность применения конфигурации прямо сейчас в один клик.

Частые ошибки при настройке и их решение (FAQ)

Типовые проблемы вебмастеров и сисадминов при внедрении данной конфигурации.

Сколько памяти суммарно может занять MySQL при 400 подключениях?
Глобальная память (12G Buffer + 256M Log) + 400 * (Sort + Join + Read ~24MB) = ~21.6 GB RAM. Сервер должен иметь не менее 32 GB RAM.