#### 8.10.2.6 重构密钥缓存

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

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

如果您分配给[`key_buffer_size`](server-system-variables.html#sysvar_key_buffer_size)要么[`key_cache_block_size`](server-system-variables.html#sysvar_key_cache_block_size)key cache component 一个不同于组件当前值的值，服务器会破坏缓存的旧结构并根据新值创建一个新结构。如果缓存包含任何脏块，服务器会在销毁和重新创建缓存之前将它们保存到磁盘。如果您更改其他键缓存参数，则不会发生重组。

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