PmaControl logo PmaControl
  • Главная
  • PmaControl
    • ИИ-агенты 13 on-premise агентов
    • Тарифы Community, Cloud, On-Premise, Premium
    • Документация Руководства, API, архитектура
    • История версий Все стабильные версии 5.x
    • Маркетплейс Плагины сообщества
    • Клиенты 28+ компаний
    • FAQ 25 вопросов / 7 категорий
    Базы данных
    • MariaDB 35 статей
    • MySQL 15 статей
    • Galera Cluster 6 статей
    • MaxScale 4 статьи
    • ProxySQL 3 статьи
    • Amazon Aurora MySQL 0 статьи
    • Azure Database 0 статьи
    • ClickHouse 0 статьи
    • GCP CloudSQL 0 статьи
    • Percona Server 0 статьи
    • SingleStore 0 статьи
    • TiDB 0 статьи
    • Vitess 0 статьи
    Решения
    • Поддержка 24×7 Экстренная помощь MariaDB & MySQL
    • Observabilité SQL Мониторинг, алерты, топология
    • Haute disponibilité Репликация, failover, Galera
    • Disaster Recovery Backup, restore, RPO/RTO
    • Sécurité & conformité Аудит, GDPR, SOC2
    • Migration & upgrade Zero downtime, pt-osc, gh-ost
  • Тарифы
  • Ресурсы
    • Документация Технические руководства и API
    • Центр оптимизации MySQL Markdown-индекс, метрики, параметры, инциденты
    • FAQ 25 частых вопросов
    • Отзывы Отзывы клиентов и кейсы
    • Блог Статьи и аналитика
    • Roadmap Планируемые функции
    Области экспертизы
    • Observabilité SQL Мониторинг, алерты, топология Dot3
    • Haute disponibilité Репликация, failover, Galera
    • Sécurité & conformité Аудит, GDPR, SOC2, ISO 27001
    • Disaster Recovery Backup, restore, RPO/RTO
    • Performance & optimisation Digests, EXPLAIN, tuning
    • Migration & upgrade Zero downtime, pt-osc
    Быстрые ссылки
    • Wiki GitHub 26 страниц — установка, движок, плагины
    • Исходный код Официальный репозиторий GitHub
    • Поддержка 24×7 Экстренная помощь MariaDB & MySQL
    • Записаться на демо 30 мин — реальная архитектура
  • Поддержка 24×7
  • Записаться на демо
Записаться на демо
🇫🇷 FR Français 🇬🇧 EN English 🇵🇱 PL Polski 🇷🇺 RU Русский 🇨🇳 ZH 中文 🇸🇦 AR العربية
Ресурсы › Центр оптимизации MySQL › Параметры производительности MySQL

Параметры производительности MySQL

Структурированная Markdown-документация для диагностики, измерения и оптимизации MySQL.

Эта страница является оригинальной документацией PmaControl. Она сохраняет практичную структуру индекса для работ по оптимизации MySQL, не копируя сторонний контент и не завися от внешнего продукта.

Цель

Параметры MySQL управляют памятью, потоками, кэшами, долговечностью и I/O. Их нужно документировать по роли, а не менять как магический список.

Группы параметров

  1. Глобальная память: innodb_buffer_pool_size, key_buffer_size, кэши таблиц.
  2. Память на сессию: sort_buffer_size, join_buffer_size, read_rnd_buffer_size, tmp_table_size.
  3. I/O InnoDB: flush, redo log, page cleaners, потоки чтения и записи.
  4. Соединения: max_connections, thread cache, лимиты файлов.
  5. Историческая совместимость: query cache, MyISAM и устаревшие параметры.

Метод

Начинайте с SHOW VARIABLES и SHOW GLOBAL STATUS, затем сравнивайте значения с наблюдаемым поведением. Высокое значение может ухудшить общее потребление памяти, если оно выделяется на соединение.

См. также: Индекс параметров.

Проверьте действующие значения и область

Начните с идентификации и значений, реально используемых процессом. Файлы конфигурации могут не отражать параметры запуска, сохранённые значения и изменения во время работы. Глобальные значения по умолчанию отличаются от существующего сеанса. Зафиксируйте единицы, область, источник, возможность изменения без перезапуска и исходное значение. Перечень пропускает переменные, отсутствующие в установленной версии.

SELECT VERSION() AS server_version, @@version_comment AS distribution;
SHOW GLOBAL VARIABLES WHERE Variable_name IN (
  'innodb_buffer_pool_size', 'innodb_log_buffer_size',
  'innodb_redo_log_capacity', 'innodb_log_file_size',
  'innodb_flush_log_at_trx_commit', 'sync_binlog',
  'max_connections', 'thread_cache_size', 'table_open_cache',
  'sort_buffer_size', 'join_buffer_size', 'tmp_table_size',
  'max_heap_table_size', 'internal_tmp_mem_storage_engine',
  'temptable_max_ram', 'temptable_max_mmap'
);
SHOW SESSION VARIABLES WHERE Variable_name IN (
  'sort_buffer_size', 'join_buffer_size', 'tmp_table_size',
  'max_heap_table_size'
);

Свяжите каждую группу с измерениями

Группа Как подтвердить Оцениваемый компромисс
Буферный пул Рабочие данные, прирост чтений, RSS Польза кеша против запаса памяти узла
Ёмкость redo Скорость записи, ожидания redo, checkpoints Дисковая ёмкость и восстановление
Буферы сеанса Фактические сортировки, соединения и параллелизм Выделение по потребности и несколько операторов
Лимиты соединений и таблиц Отказы, создание потоков, открытие таблиц Больший лимит повышает память и конкуренцию
Надёжность фиксации Задержка фиксации и требования при сбоях Производительность против риска потери подтверждённых данных

Рассчитывайте память по фактическим выделениям

Не умножайте все буферы на max_connections, называя результат реальным потреблением RAM. Многие выделяются по потребности, а запрос может иметь несколько буферов соединения или временных таблиц. Разделяйте глобальную память, расходы подключённых сеансов и активных запросов; сохраняйте стресс-сценарий для оценки. Учтите ОС, другие службы и инструментацию, затем сравните модель с измеренным RSS и давлением памяти.

MySQL TempTable имеет общий бюджет RAM через temptable_max_ram; начиная с MySQL 8.0.28, tmp_table_size ограничивает и каждую внутреннюю таблицу TempTable. Для внутренних таблиц MEMORY применяется меньшее из tmp_table_size и max_heap_table_size. Правила зависят от движка и версии. Ёмкость redo относится к диску, а innodb_log_buffer_size — к RAM: не складывайте их как память.

Учитывайте версию и сохранение настроек

MySQL 8.0.30 ввёл innodb_redo_log_capacity; старые версии задают размеры файлов redo. Query cache относится к старому MySQL и удалён в MySQL 8. У MariaDB собственный жизненный цикл переменных, который нужно проверять по её документации. Не переносите конфигурацию с неизвестными или удалёнными переменными без проверки.

Для каждого изменения выясните влияние на существующие и новые сеансы и необходимость перезапуска. Глобальное изменение во время работы не обязательно сохраняется: MySQL SET PERSIST пишет отдельную конфигурацию. Согласуйте текущие и стартовые значения, задайте откат обоих и испытайте переподключение и перезапуск в контролируемой среде. Сравнивайте по одной гипотезе на одинаковой нагрузке и сохраняйте требуемую надёжность.

Продолжение диагностики

  • Используйте калькулятор памяти для сценариев и указатель параметров для отдельных настроек.

Официальные источники

  • MySQL redo log
  • MySQL internal temporary tables
  • MySQL persisted variables
PmaControl
+33 6 63 28 27 47 contact@pmacontrol.com
Юридическая информация GitHub Контакты
Не ждите инцидента, чтобы понять свою архитектуру. © 2014-2026 PmaControl — 68Koncept