Documentation Home
MySQL 8.0 参考手册  / 第8章优化  / 8.10 缓冲和缓存  / 8.10.2 MyISAM 键缓存  /  8.10.2.6 重构密钥缓存

8.10.2.6 重构密钥缓存

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

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

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

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