MemSQL 服务器占用大磁盘space

MemSQL server takes large disk space

我有一个 MemSQL 服务器,其中的所有 table 数据大约有 1 MB。这也使用非常低的 acceptable 内存使用率。但问题是服务器最近 运行 磁盘用完 space。 当查看更多详细信息时,我可以找到以下磁盘 space 用法。

52G     /var/lib/memsql/master-3306/plancache/
34G     /var/lib/memsql/leaf-3307/plancache/

其中包含许多如下文件

Select_digin_componentheader_72f4f4454iusudf9sdf98tkjnm432436thss4dgfdhjfd45tr44.cc Select_digin_componentheader_72f4f4454iusudf9sdf98tkjnm432436thss4dgfdhjfd45tr44.ok Select_digin_componentheader_72f4f4454iusudf9sdf98tkjnm432436thss4dgfdhjfd45tr44.so

其中 digin_componentheader 是我们的 table 名称之一,其他 table 也存在上述文件。我们做了很多插入,但我们也在 5 分钟后删除了它们,这是我们 6 个月来一直在做的唯一操作。

我们没有更改任何配置,它具有 memsql 服务器中的所有默认配置。 谁能解释为什么它需要 90GB 来存储这个?还是配置问题?

这是 MemSQL 为每个查询创建的生成和编译代码。根据 plancache 目录的内容,你是 运行 MemSQL 4。我建议升级到不使用 g++ 编译查询的 MemSQL 5。

MemSQL 不会自行删除plancache 中的文件。他们需要 运行 查询。 Old\stale 文件会随着时间的推移而累积,您可能不再 运行ning(或在 ALTER table 操作之后)。您可以在服务器停止时删除 plancache 目录的内容(不要在 MemSQL 运行ning 时这样做)。重新启动后,MemSQL 将在第一次查询 运行 时重建它需要的任何文件。请注意,这将使您在重启后首次执行查询的速度变慢(代码生成成本 - 这在 MemSQL 5 中要快得多)。