MemSQL - 清除主节点和叶节点之间的计划缓存



我有一个MemSQL集群,它有一个主聚合器和3个叶节点。主聚合器和 3 个叶节点分别在不同的服务器上运行,因此总共有 4 台服务器。

每天都有一个进程在主聚合器servver上运行,该进程截断MemSQL中的所有表,并从另一个源加载新数据。每个表被截断后,我通过以下命令删除计划缓存:

memsqlcli="mysql -u root -h 127.0.0.1 -P 3306 -vvv"
memsqlclid="$memsqlcli -D $memsql_db"
$memsqlclid -e "DROP ALL FROM PLANCACHE"

通过阅读有关此函数的 MemSQL 文档,我似乎只是从当前节点(主聚合器(中清除了计划缓存。我的理解是,叶节点也应该清除其缓存,这样做可能会导致一些缓存问题,我相信我有时会在数据中看到这些问题。

我试图找到有关如何清除整个集群中的缓存的文档,但没有任何运气。有没有人设法实施执行此操作的解决方案?

正确,DROP ALL FROM PLANCACHE 仅在您连接到的节点上运行。若要删除所有节点上的计划缓存,请连接到所有节点并运行此命令。遗憾的是,没有命令可以在整个群集中执行此操作。

您在此处删除计划缓存的目标是什么?你的意思是什么

我的理解是,叶节点也应该清除其缓存,这样做可能会导致一些缓存问题,我相信我有时会在数据中看到这些问题。

通常不需要显式清除平面缓存,尤其是在叶子上。

最新更新