我有一个包含天气信息的Postgres 9.1数据库。数据集包含大约310万行。
从CSV文件加载数据大约需要2分钟,而创建多列索引则需要更少的时间。
每6小时我需要完全刷新数据集。我目前的想法是将新数据集导入另一个数据库名称,例如“weather_imported”,一旦导入和索引创建完成,我将删除原始数据库并重命名导入的数据库。
理论上,客户端会在此操作期间继续查询数据库,但如果这会产生不良影响,我可能会安排让客户端默默地忽略一些错误。
问题:
该策略是否有效?
如果客户碰巧在 在数据库丢弃时运行查询的过程,我的假设是 在查询之前,数据库不会完成删除 完了 - 真的吗?
如果在时间之间发生了查询怎么办? 数据库被删除并重命名?我假设“找不到数据库” 错误。
有更好的策略吗?
答案 0 :(得分:0)
考虑以下策略作为替代方案:
Presto - 不需要随处乱搞数据库。