PmaControl logo PmaControl
  • Accueil
  • PmaControl
    • Agents IA 13 agents on-premise
    • Nos offres Community, Cloud, On-Premise, Premium
    • Documentation Guides, API, architecture
    • Changelog Toutes les versions stables 5.x
    • Marketplace Plugins communautaires
    • Clients 28+ entreprises
    • FAQ 25 questions / 7 catégories
    Bases de données
    • MariaDB 35 articles
    • MySQL 15 articles
    • Galera Cluster 6 articles
    • MaxScale 4 articles
    • ProxySQL 3 articles
    • Amazon Aurora MySQL 0 article
    • Azure Database 0 article
    • ClickHouse 0 article
    • GCP CloudSQL 0 article
    • Percona Server 0 article
    • SingleStore 0 article
    • TiDB 0 article
    • Vitess 0 article
    Solutions
    • Support 24×7 Urgences MariaDB & MySQL
    • Observabilité SQL Monitoring, alertes, topologie
    • Haute disponibilité Réplication, failover, Galera
    • Disaster Recovery Backup, restore, RPO/RTO
    • Sécurité & conformité Audit, RGPD, SOC2
    • Migration & upgrade Zero downtime, pt-osc, gh-ost
  • Nos offres
  • Ressources
    • Documentation Guides techniques & API
    • Centre d'optimisation MySQL Index Markdown, métriques, paramètres, incidents
    • FAQ 25 questions fréquentes
    • Témoignages Retours clients & cas d'usage
    • Blog Articles & insights
    • Roadmap Fonctionnalités à venir
    Domaines d'expertise
    • Observabilité SQL Monitoring, alertes, topologie Dot3
    • Haute disponibilité Réplication, failover, Galera
    • Sécurité & conformité Audit, RGPD, SOC2, ISO 27001
    • Disaster Recovery Backup, restore, RPO/RTO
    • Performance & optimisation Digests, EXPLAIN, tuning
    • Migration & upgrade Zero downtime, pt-osc
    Liens rapides
    • Wiki GitHub 26 pages — install, engine, plugins
    • Code source Repository GitHub officiel
    • Support 24×7 Urgences MariaDB & MySQL
    • Réserver une démo 30 min — architecture réelle
  • Support 24×7
  • Réserver une démo
Réserver une démo
🇫🇷 FR Français 🇬🇧 EN English 🇵🇱 PL Polski 🇷🇺 RU Русский 🇨🇳 ZH 中文 🇸🇦 AR العربية
Ressources › Centre d'optimisation MySQL › Paramètres de performance MySQL

Paramètres de performance MySQL

Documentation Markdown structurée pour diagnostiquer, mesurer et optimiser MySQL.

Cette page est une documentation originale PmaControl. Elle reprend une structure d'index pratique pour travailler sur l'optimisation MySQL, sans copier de contenu tiers ni dépendre d'un produit externe.

Objectif

Les paramètres MySQL pilotent la mémoire, les threads, les caches, la durabilité et l'I/O. Ils doivent être documentés par rôle plutôt que modifiés comme une liste magique.

Familles de paramètres

  • Mémoire globale: innodb_buffer_pool_size, key_buffer_size, caches de tables.
  • Mémoire par session: sort_buffer_size, join_buffer_size, read_rnd_buffer_size, tmp_table_size.
  • I/O InnoDB: flush, redo log, page cleaners, threads de lecture et écriture.
  • Connexions: max_connections, thread cache, limites de fichiers.
  • Compatibilité historique: query cache, MyISAM et paramètres obsolètes.

Méthode

Commencer par SHOW VARIABLES et SHOW GLOBAL STATUS, puis comparer les valeurs au comportement observé. Une valeur haute peut aggraver la mémoire totale si elle est allouée par connexion.

Voir aussi: Index des paramètres.

Examiner valeurs effectives et portée

Partez de l’identité et des valeurs réellement utilisées par le processus. Les fichiers seuls peuvent manquer des options de lancement, valeurs persistées ou changements à chaud. Les valeurs globales par défaut et celles d’une session existante peuvent différer. Notez unités, portée, source, caractère dynamique ou besoin de redémarrage et valeur initiale. Cet inventaire omet les variables absentes de la version installée.

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'
);

Relier chaque famille aux mesures

Famille Comment confirmer Compromis à évaluer
Buffer pool Jeu actif, deltas de lecture, RSS Bénéfice du cache contre réserve mémoire système
Capacité redo Débit d’écriture, attentes redo, checkpoints Espace disque et comportement de reprise
Buffers de session Tris, jointures et concurrence active réels Allocations à la demande et opérateurs multiples
Limites de connexions et tables Refus, création de threads, ouvertures de tables Plus de capacité peut accroître mémoire et contention
Durabilité des commits Latence des commits et tolérance aux pannes requise Débit contre risque de perte de données acquittées

Budgéter selon les allocations

Ne multipliez pas tous les buffers par max_connections pour annoncer la RAM réellement consommée. Beaucoup sont alloués à la demande, et une requête peut avoir plusieurs buffers de jointure ou tables temporaires. Séparez mémoire globale, coût des sessions connectées et mémoire des requêtes actives ; gardez un scénario de stress comme borne à examiner. Incluez OS, autres services et instrumentation, puis comparez modèle, RSS mesurée et pression mémoire.

TempTable MySQL possède un budget RAM partagé via temptable_max_ram ; depuis MySQL 8.0.28, tmp_table_size limite aussi chaque table interne TempTable. Les tables internes basées sur MEMORY utilisent le minimum de tmp_table_size et max_heap_table_size. Ces règles dépendent du moteur et de la version. La capacité redo est du disque, innodb_log_buffer_size de la RAM : ne comptez pas les deux comme mémoire.

Respecter versions et persistance

MySQL 8.0.30 a introduit innodb_redo_log_capacity ; les versions précédentes utilisent les variables de taille des fichiers redo. Le query cache concerne les anciennes versions MySQL et a été supprimé dans MySQL 8. MariaDB possède son propre cycle de variables, à vérifier dans son manuel. Ne recopiez jamais une configuration contenant des variables inconnues ou supprimées sans validation.

Pour chaque changement, vérifiez s’il touche les sessions existantes, nouvelles ou exige un redémarrage. Un changement global à chaud n’est pas forcément persistant ; SET PERSIST MySQL écrit une configuration distincte. Alignez valeurs actives et attendues au redémarrage, documentez leur rollback et testez reconnexion/redémarrage dans un environnement maîtrisé. Comparez une hypothèse à la fois sur la même charge et préservez la durabilité requise.

Poursuivre le diagnostic

  • Utilisez le calculateur mémoire pour les scénarios d’allocation et l’index des paramètres pour chaque variable.

Références officielles

  • MySQL redo log
  • MySQL internal temporary tables
  • MySQL persisted variables
PmaControl
+33 6 63 28 27 47 contact@pmacontrol.com
Mentions légales GitHub Contact
N'attendez pas l'incident pour comprendre votre architecture. © 2014-2026 PmaControl — 68Koncept