Datalbi  
Créé le 10/09/2015 par Laurent Bourcier

Gestion de la mémoire sous MySQL 5.6

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.