8.10.2.6 重构密钥缓存

密钥缓存可以随时通过更新其参数值进行重组。例如:

mysql> SET GLOBAL cold_cache.key_buffer_size=4*1024*1024;

如果您为key_buffer_sizekey_cache_block_size键缓存组件分配的值与该组件的当前值不同,则服务器将破坏缓存的旧结构并根据新值创建一个新的结构。如果缓存中包含任何脏块,则服务器会在销毁并重新创建缓存之前将它们保存到磁盘。如果您更改其他关键缓存参数,则不会发生重组。

重组键高速缓存时,服务器首先将所有脏缓冲区的内容刷新到磁盘。之后,缓存内容将不可用。但是,重组不会阻止需要使用分配给缓存的索引的查询。相反,服务器使用本机文件系统缓存直接访问 table 索引。文件系统缓存的效率不如使用键缓存,因此尽管执行查询,但可以预见其速度会变慢。高速缓存重组之后,它可以再次用于缓存分配给它的索引,并且不再使用文件系统缓存来存储索引。