我正在使用 GridDB 作为我的内存数据库,我打算在它上面运行大量的 SQL 查询。 底层数据有很多列/属性,分布在很多表中。 将其视为大量 CSV,每个 CSV 有 20 列或更多列。
我的 SQL 查询将连接许多表以获得所需的聚合结果。
根据 GridDb 文档,可以设置 3 个变量来提高查询性能。 storeMemoryLimit - SQL 处理在内存中保存的中间数据的内存上限。 workMemoryLimit - SQL 处理重启中运算符的内存上限 workCacheMemory - 使用工作内存后不释放缓存的上限。
我对 workMemoryLimit 和 workCacheMemory 有点困惑。 workCacheMemory 会在 workMemoryLimit 耗尽后启动吗? 或者 storeMemoryLimit 用于中间数据,workMemoryLimit 仅供 SQL 运算符使用,并且 workCacheMemory 用于可能需要放入缓存中的所有其他内容(例如中间/内部查询的结果)?
谢谢
微调我的内存数据库以加快查询速度,给定具有许多列的多个表