#### 18.7.6.2减少缓存大小

XCom消息缓存大小的最小设置为1GB，最高可达MySQL 8.0.20。在MySQL 8.0.21中，最小设置为134217728字节（128MB），这允许在可用内存有限的主机上部署。有一个非常低的[`组\复制\消息\缓存\大小`](group-replication-options.html#sysvar_group_replication_message_cache_size)如果主机位于不稳定的网络上，则不建议使用此设置，因为较小的消息缓存会使组成员在暂时失去连接后更难重新连接。

如果重新连接的成员无法从XCom消息缓存中检索到所需的所有消息，则该成员必须离开该组并重新加入该组，以便使用分布式恢复从另一个成员的二进制日志中检索丢失的事务。在MySQL 8.0.21中，离开组的成员默认会进行三次自动重新加入尝试，因此重新加入组的过程仍然可以在没有操作员干预的情况下进行。但是，与从XCom消息缓存中检索消息相比，使用分布式恢复重新加入是一个更长、更复杂的过程，因此成员需要更长的时间才能可用，并且组的性能可能会受到影响。在一个稳定的网络上，可以最大限度地减少成员暂时失去连接的频率和持续时间，这种情况的发生频率也应该最小化，因此该组可能能够容忍较小的XCom消息缓存大小，而不会对其性能产生重大影响。

如果您正在考虑降低缓存大小限制，可以查询Performance Schema表[`内存\u摘要\u全局\u按事件\u名称`](performance-schema-memory-summary-tables.html)使用以下语句：

```
SELECT * FROM performance_schema.memory_summary_global_by_event_name
  WHERE EVENT_NAME LIKE 'memory/group_rpl/GCS_XCom::xcom_cache';
```

这将返回消息缓存的内存使用统计信息，包括缓存条目的当前数量和缓存的当前大小。如果降低缓存大小限制，XCom将删除已确定并交付的最旧条目，直到当前大小低于限制。在删除过程中，XCom可能会暂时超过缓存大小限制。
