0

我有大量的历史“关闭”行——三个月的数据,可能是 1 或 2 TB——以及少量的高流失率“开放”行——最多 3 天的数据,但大多数行可能几分钟后过渡到“关闭”状态。

理想情况下,我希望将这些作为单个概念表呈现给 SELECT 查询。

但在幕后,我热衷于通过 customer_id 对“封闭”行进行分区并积极压缩等等。对于“打开”行,我可能必须快速连续更新它们几次,然后才能最终将它们移动到“关闭”状态。

如何划分我的数据?

  • MERGE 表似乎只是 myISAM
  • SPIDER 和 CONNECT 表示多台服务器?
  • PARTITION 不允许您为每个分区指定引擎和压缩,
  • 和 SUBPARTITION 不能在 PARTITION 的基础上指定?
  • 并且“关闭”布尔值必须在主键中?
  • 如果我有两个由 VIEW 合并的表,查询规划器是否了解如何避免针对所有表运行?
  • 分区是否会加速涉及多个分区(例如并行工作人员)的 SELECT?

或者这可以在不同的 DBMS 中有效地完成,而不是在 PostgreSQL 中?

4

1 回答 1

1

我建议有两张单独的表格,一张用于您的档案,一张用于您的工作集。我不认为 MySQL 视图足够聪明来优化它。它还可以让您完全控制架构,但会给您的应用程序带来负担。

于 2013-09-04T03:18:53.147 回答