Mysql's memory management is large and advanced, which is explained in the opening comments of the mem0pool.c file. It can be roughly divided into four parts, including 9 large blocks:
Nine big blocks:
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 big blocks are managed through 4 parts
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.
That is, buffer pool, redo log buffer, ordinary Pool and 8 (user session information, can be regarded as a part)
The redo log buffer is managed separately by the redo part. The bufferpool is a complex part with a lot of content. The ordinary pool is mentioned above , except 8, and 1,2. The rest are under its control.
MySQL is developed in C.
The official website of MySQL http://www.mysql.com/ has source code download, which is C
The above is the detailed content of What language is the mysql source code?. For more information, please follow other related articles on the PHP Chinese website!