【发布时间】:2020-03-08 18:08:05
【问题描述】:
我有一个类似[[(Double,Double)]] 的数组。它是一个多维元组数组。
这是我永远不会查询的数据,因为它不需要查询。只有在客户端这样才有意义。我正在考虑将整个内容存储为字符串,然后将其解析回多数组。
考虑到我最多可以有 20 个数组和 4 个最大内部数组,每个数组都有一个 2 Double 的元组,这会是一个好方法吗?解析会非常昂贵吗?
我将如何检查哪种方法更好,以及将其作为多维数组存储在 PostgreSQL 中是否更好?
我将如何存储它?
【问题讨论】:
-
"解析会非常昂贵" - 因为您会在 postgres 数据库之外执行此操作,所以只有您选择的语言/框架/技术中的基准可以判断。还要测量序列化开销。
-
我看不出有任何理由不将其存储在 postgres 中的实际数组中,这有望为其选择最佳内存布局。除非您可以在自定义序列化后充分利用压缩。也就是说,20*4*2 是一个非常小的数组,所以除非这些数组有数千行,否则您可能会don't need to worry anyway。
-
我将如何存储一个多数组的元组。我可以存储多个 Double 数组,但我会存储 (Double,Double)
-
就像 Erwin 如下所示 :-) 或者,作为三维数组,其中第三维的大小为 2。
-
我认为这不会有什么不同。复合类型可能更难使用,但这主要取决于您的工具和技术。
标签: postgresql parsing multidimensional-array database-design tuples