bsh*_*der 12 postgresql database-design partitioning postgis postgresql-9.3
我有大量的天气模型数据被放入 PostgreSQL 数据库。该机器具有 8 个内核和 16 GB 的 RAM。我正在使用 PostGIS 2.1 运行 PostgreSQL 9.3。每个表都有不同种类的天气数据(温度、露点、风等)。每个表将有 6-7 列:纬度、经度、点几何、高程、模型相关的日期时间以及 1-2 个感兴趣的数据值。数据将主要按时间和高程查询边界框。每个表将有大约 145,757,360 行(早于现在不再相关的数据将被删除)。我粗略估计每个表的大小约为 10 GB,没有索引。(这是 52 字节的数据加上每行 23 字节的开销)。随着新模型数据可用,数据将定期更新/插入。笔记:
所以我正在研究这两个计划:
更远,
传递数据时,选择会比聚集索引更快吗?如果同时发出多个请求,答案是否会改变?
谢谢你。我希望我提供了所有需要的数据。如果没有让我知道,我会添加它。
小智 1
考虑到所有因素,我会选择选项 2。日期将被均匀地选择,但我猜测对于给定的查询,仅涉及一两个日期分区。遗憾的是,您无法根据地理位置进行聚类并按日期进行分区,而这将是理想的选择。如果边界框足够小,海拔往往与地理位置相关。
考虑到可用的选择,更清洁的数据操作和避免日常清理是一件好事。
使用选项 1交付选择可能会更快,但我怀疑这可能会是一次清洗。使用选项 1,具有相同日期和海拔的记录在一个大聚集索引中彼此靠近放置。使用选项 2,具有相同日期和海拔的记录在许多较小的聚集索引中彼此靠近放置。