我希望在数据库中存储900x100元素的2D数组。有效地调用和比较数组是很重要的。我可以使用像A,x,y,A(x,y)这样的模式的表,这样一个数组就可以容纳90,000条记录。这看起来像是一种~ok~表设计来存储数组,并且将提供对单个元素的有效召回,但对整个数组的召回效率很低,并且将导致非常低效的数组比较。
我是否应该让表设计保持这种方式,并在代码中构建和比较我的数组?或者,有没有一种更好的方法来构造这个表,这样我就可以使用仅数据库操作来获得高效的数组比较?
谢谢
发布于 2008-09-30 06:34:51
如果数据类型允许,请将其以连接格式存储,并在取消连接后在内存中进行比较。数据库操作将更快,内存中的操作也将比数据库检索更快。
谁知道呢,你甚至可以在不断开连接的情况下对其进行比较。
发布于 2008-09-30 06:26:55
900 x 100元素实际上是非常小的(即使元素是大小为1K的东西,也只有90MB)。难道不能在需要时在内存中进行比较,然后以某种序列化格式存储在磁盘上吗?
在数据库中存储2D数组是没有意义的,特别是如果它是不可变的数据。
发布于 2011-01-13 22:30:35
当我在地震行业工作时,我们通常只是将我们的数组(通常是几千个元素的一维)转储到二进制文件。数据库将仅用于本质上是元数据的内容(位置、索引等)。这会快得多,但它也允许在必要时解耦数据:在生产中,这是常见的,几千个元素听起来不是很多,但一个典型的数据集可能很容易达到数百GB -这是在20世纪90年代,所以我们必须解耦到磁带。
https://stackoverflow.com/questions/151957
复制相似问题