MySQL's InnoDB Buffer pool internal mechanism

Source: Internet
Author: User

1. Basic structure: InnoDB uses the least recently used (LRU) algorithm to manage his buffer_pool. The Buffer_pool is internally separated into two lists. A young list and a old list.

The young list stores cached data that is used by the high frequency (the default is 5/8 of the entire buffer)

The old list stores data that is used at low frequencies (the default is 3/8 of the total buffer)


2. Usage mechanism: When a new block of data is cached from the disk into buffer, it is placed by default on the old list's head, which is midpoint. Any block data within the old list is accessed again, and InnoDB will add it to the young list's head. But if the block data is accessed by the read-ahead mechanism, it is not immediately loaded into the young list. When unused chunks of data are squeezed to the old list's tail, they are reclaimed by the system.


3. How to configure:

innodb_old_blocks_pct: Sets the ratio of the young list to the old list. (The default value is PNs (that is, 3/8 of the pool).

Innodb_old_blocks_time: Sets the delay time after the data block in the old list has been accessed to join the young list. The default is 0, which is immediately added to the young list. When using some dump or full table scans temporarily, use this parameter to avoid a large number of data blocks being recycled.

4. Monitoring: The buffer POOL and memory portion of Show engine InnoDB status contains the usage of the Old/young list

Old database pages: number of data pages included in the old list

Pages made young:the number of old pages this were moved to the head of the buffer pool (the new sublist)

Not young:he number of pages this has remained in the old sublist without being made new

YOUNGS/S: The number of access processes that caused the data block to join the young list (note: This is the number of processes, not the number of blocks of data)

NON-YOUNGS/S: No cause ...

Young-making rate:hits that cause blocks to move to the head of the buffer pool

Not:hits that don't cause blocks to move to the head of the buffer pool (due to the delay not being met)

(young-making rate and not rate won't normally add up to the overall buffer pool hits rate)


5. New version of the 5.5 multi-pool mechanism: set innodb_buffer_pool_instances greater than 1, can use multiple pool, so that access to the competition is dispersed. The size of each pool is equal to innodb_buffer_pool_size/innodb_buffer_pool_instances. (Note: Each block must be at least less than 1G.) )


Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.