La gestion de la mémoire de MySQL est énorme et avancée, ce qui est expliqué dans les commentaires d'ouverture du fichier mem0pool.c. Elle peut être grossièrement divisée en quatre parties, dont 9 gros blocs :
.
Neuf morceaux :
buffer pool, parsed andoptimized SQL statements, data dictionarycache, log buffer, locks for eachtransaction, hash table forthe adaptive index, state andbuffers for each SQL query currently being executed, session foreach user, and stack for eachOS thread.
9 morceaux sont gérés à travers 4 parties
A solution tothe memory management: 1. the bufferpool size is set separately; 2. log buffersize is set separately; 3. the commonpool size for all the other entries, except 8, is set separately.
C'est-à-dire un pool de tampons, un journal de rétablissement buffer, Pool ordinaire et 8 (informations de session utilisateur, peuvent être considérées comme une partie)
Le tampon redo log est géré séparément par la partie redo, c'est-à-dire que le pool de tampons est un. partie complexe avec beaucoup de contenu. Comme mentionné ci-dessus, le pool ordinaire, sauf 8 et 1,2, est sous son contrôle.
MySQL est développé en C++.
Le site officiel de MySQL http://www.mysql.com/ contient le code source à télécharger, qui est C++
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!