我希望在数据库中存储900x100元素的2D数组。有效地调用和比较阵列很重要。我可以使用一个像[A,x,y,A(x,y)]这样的模式的表,这样一个数组就会损害90,000条记录。这似乎是一个用于存储数组的〜ok~表设计,并且可以提供对单个元素的有效回忆,但是对整个数组的调用效率低,并且会导致非常低效的数组比较。
我应该以这种方式离开表格设计并在代码中构建和比较我的数组吗?或者是否有更好的方法来构造表,以便我可以使用仅数据库操作进行有效的数组比较?
感谢
答案 0 :(得分:2)
如果数据类型允许,则将其存储为串联格式,并在解除连接后在内存中进行比较。数据库操作将更快,并且内存中操作也将比数据库检索更快。
谁知道,你甚至可以在没有去连接的情况下进行比较。
答案 1 :(得分:0)
900 x 100元素实际上非常小(即使元素是大量1K的东西,只有90 MB)。你能不能在需要时在内存中进行比较并以某种序列化格式存储在磁盘上?
将2D数组存储在数据库中是没有意义的,特别是如果它是不可变数据。
答案 2 :(得分:0)
当我以前在地震行业工作时,我们过去常常将我们的数组(通常是几千个元素中的1d)转储到二进制文件中。该数据库仅用于基本上是元数据(位置,索引等)。这会快得多,但它也允许数据在必要时解耦:在生产中这是常见的,几千个元素听起来不多,但典型的数据集可能很容易达到数百GB - 这是20世纪90年代,所以我们不得不拆开磁带。