可以随时通过更新其参数值来重组密钥缓存。例如:
mysql> SET GLOBAL cold_cache.key_buffer_size=4*1024*1024;
如果您为
key_buffer_size
或
key_cache_block_size
key 缓存组件分配一个与组件当前值不同的值,则服务器会破坏缓存的旧结构并根据新值创建一个新结构。如果缓存包含任何脏块,服务器会在销毁和重新创建缓存之前将它们保存到磁盘。如果您更改其他密钥缓存参数,则不会发生重组。
重构键缓存时,服务器首先将所有脏缓冲区的内容刷新到磁盘。之后,缓存内容变得不可用。但是,重组不会阻止需要使用分配给缓存的索引的查询。相反,服务器使用本机文件系统缓存直接访问表索引。文件系统缓存不如使用键缓存有效,因此尽管执行了查询,但速度可能会变慢。缓存重组后,它再次可用于缓存分配给它的索引,并且停止使用文件系统缓存索引。