DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(mysql.info) midpoint-insertion

Info Catalog (mysql.info) multiple-key-caches (mysql.info) myisam-key-cache (mysql.info) index-preloading
 
 7.4.6.3 Midpoint Insertion Strategy
 ...................................
 
 By default, the key cache management system uses the LRU strategy for
 choosing key cache blocks to be evicted, but it also supports a more
 sophisticated method called the midpoint insertion strategy.
 
 When using the midpoint insertion strategy, the LRU chain is divided
 into two parts: a hot sub-chain and a warm sub-chain.  The division
 point between two parts is not fixed, but the key cache management
 system takes care that the warm part is not `too short,' always
 containing at least `key_cache_division_limit' percent of the key cache
 blocks. `key_cache_division_limit' is a component of structured key
 cache variables, so its value is a parameter that can be set per cache.
 
 When an index block is read from a table into the key cache, it is
 placed at the end of the warm sub-chain. After a certain number of hits
 (accesses of the block), it is promoted to the hot sub-chain. At
 present, the number of hits required to promote a block (3) is the same
 for all index blocks.
 
 A block promoted into the hot sub-chain is placed at the end of the
 chain. The block then circulates within this sub-chain.  If the block
 stays at the beginning of the sub-chain for a long enough time, it is
 demoted to the warm chain. This time is determined by the value of the
 `key_cache_age_threshold' component of the key cache.
 
 The threshold value prescribes that, for a key cache containing N
 blocks, the block at the beginning of the hot sub-chain not accessed
 within the last `N × key_cache_age_threshold / 100' hits is to be
 moved to the beginning of the warm sub-chain. It then becomes the first
 candidate for eviction, because blocks for replacement always are taken
 from the beginning of the warm sub-chain.
 
 The midpoint insertion strategy allows you to keep more-valued blocks
 always in the cache. If you prefer to use the plain LRU strategy, leave
 the `key_cache_division_limit' value set to its default of 100.
 
 The midpoint insertion strategy helps to improve performance when
 execution of a query that requires an index scan effectively pushes out
 of the cache all the index blocks corresponding to valuable high-level
 B-tree nodes. To avoid this, you must use a midpoint insertion strategy
 with the `key_cache_division_limit' set to much less than 100. Then
 valuable frequently hit nodes are preserved in the hot sub-chain during
 an index scan operation as well.
 
Info Catalog (mysql.info) multiple-key-caches (mysql.info) myisam-key-cache (mysql.info) index-preloading
automatically generated byinfo2html