La formule donnant la mémoire maximale consommée par MySQL est la suivante :
MAX MEMORY =
key_buffer_size +
tmp_table_size +
query_cache_size +
innodb_buffer_pool_size +
innodb_additional_mem_pool_size +
innodb_log_buffer_size +
max_connections x (
thread_stack +
read_buffer_size +
read_rnd_buffer_size +
join_buffer_size +
sort_buffer_size +
binlog_cache_size
)
La liste des global variables entrant en action est :
| Paramètre | Valeur par défaut MySQL 5.6 64bit |
Description |
|---|---|---|
Mémoire globale |
||
| key_buffer_size | 8 MB | Buffer MyISAM contenant des blocks d'index |
| tmp_table_size | 16 MB | Taille maximale des tables temporaires in-memory |
| query_cache_size | 1 MB | Taille du buffer de cache du résultat des requetes. Désactivé par défaut car query_cache_type = 0 par défaut. |
| innodb_buffer_pool_size | 128 MB | Taille du buffer innodb. |
| innodb_additional_mem_pool_size | 8 MB | Taille du buffer innodb utilisé pour metre en cache le dictionnaire de données. |
| innodb_log_buffer_size | 8 MB | Taille du buffer innodb pour écrire dans les fichiers log de transaction. |
Mémoire par connexion |
||
| max_connections | 151 | Nombre maximum de connexions simultanées |
| thread_stack | 256 KB | Taille de la pile d'un thread. |
| read_buffer_size | 128 KB | Buffer pour une lecture séquentielle d'une table MyISAM |
| read_rnd_buffer_size | 256 KB | Buffer de lecture pour les lectures random utilisé par plusieur moteurs de stockage |
| join_buffer_size | 256 KB | Buffer utilisé pour les index scans et les jointures en full scan |
| sort_buffer_size | 256 KB | Buffer utilisé pour optimiser les tris (clause order by) |
| binlog_cache_size | 32 KB | Cache de transaction avant envoi vers les binary logs. |