Mysql storage engine-InnoDB memory structure
The InnodB storage engine is mainly composed of three buffer pools: LogBuffer, ChangeBuffer, BufferPool, and Adaptive Hash Index.
1. First introduce what is BufferPool?
BufferPool is a memory operation buffer pool generated by the InnoDB engine for user additions, deletions, and changes. The storage unit in it corresponds to a page object, which corresponds to the storage page on the disk.
page is divided into:
free page: unused cache page
clean page: the page has been used, but the data has not been changed
dirty page: dirty page, the page that has been used and the data has been modified, the data in the page is inconsistent with the data on the disk
For the above three page types, InnoDB maintains and manages through three linked list structures
free list: Indicates a free buffer, which manages the free page
flush list: Indicates the buffer that needs to be flushed to the disk, and manages the dirty page. The internal pages are sorted according to their modification time. The earlier the disk is flushed, the latest modification is at the head of the flush list, and the earliest modification is at the head of the flush list. The tail, first brush the plate from the tail
lru list: Indicates the buffer in use, manages clean page and dirty page, buffer