小编bsh*_*der的帖子

在PostgreSQL中存储和查询滚动数据

我有大量的天气模型数据被放入 PostgreSQL 数据库。该机器具有 8 个内核和 16 GB 的 RAM。我正在使用 PostGIS 2.1 运行 PostgreSQL 9.3。每个表都有不同种类的天气数据(温度、露点、风等)。每个表将有 6-7 列:纬度、经度、点几何、高程、模型相关的日期时间以及 1-2 个感兴趣的数据值。数据将主要按时间和高程查询边界框。每个表将有大约 145,757,360 行(早于现在不再相关的数据将被删除)。我粗略估计每个表的大小约为 10 GB,没有索引。(这是 52 字节的数据加上每行 23 字节的开销)。随着新模型数据可用,数据将定期更新/插入。笔记:

所以我正在研究这两个计划:

  1. 简单地按(日期时间,高程)索引和聚类,并为点几何添加一个额外的索引。运行一个常规的 cron 作业来删除旧行、运行vacuum/analyze 和重新集群。
  2. 按日期时间分区,然后按每个表的高程进行聚类和索引,并在几何上有索引。运行常规的 cron 作业以添加新表并删除旧表。

更远,

  • 所以,我知道删除表和删除和清空表的效率要高得多。但是,否则我会看到性能提升吗?
  • 当所有表将被均匀更新和选择直到删除不相关时,分区是否合适(文档表明分区在只选择其中几个时效果最佳)?

传递数据时,选择会比聚集索引更快吗?如果同时发出多个请求,答案是否会改变?

谢谢你。我希望我提供了所有需要的数据。如果没有让我知道,我会添加它。

postgresql database-design partitioning postgis postgresql-9.3

12
推荐指数
1
解决办法
1665
查看次数

PostgreSQL 用户权限

我有一个 PostgreSQL 9.3 数据库,带有支持 Web 应用程序和 GeoServer 的 PostGIS 扩展。我创建了三个用户。

用于访问参考数据模式中的数据的只读用户。

用于访问和更新保存应用程序状态的架构中的数据的读/写用户。

GeoServer 正在访问的地图数据的读/写/创建用户。

前两个工作正常。第三个我有问题。以用户 GeoServer 身份登录可以创建新表就好了。但随后无法读取它们。我必须专门进入并手动应用权限。这对于应用程序来说是站不住脚的。用户可以创建一个他们无法读取的表对我来说没有多大意义。所以我认为我错过了一个不明显的权限设置。我的谷歌搜索让我得到了大量关于设置只读用户的奇怪说明,但不是为了这个。

postgresql permissions

1
推荐指数
1
解决办法
5475
查看次数