我有很多大的多维多维数组,我需要经常访问它们的值。我需要存储它们并从磁盘中检索它们。
存储数据的默认方式是RDMS,但我不禁觉得在这种情况下它很尴尬。人们不希望创建一个包含4096列的表(此时SQL Server Express(我当前的RDMS)的8K行大小限制成为一个问题)。在表中存储数组的替代方法如下:
第1列是x坐标
第2列是y坐标
第3列是实际值
是一个很大的性能开销,因为原始数据集中的单个列或行(不是数据库的一个列或行)可能会分布在整个硬盘驱动器上,但也许这是正确的方法。
关于持久化大型多维数值数据的最佳方法,您有什么经验?初始化和关机性能问题低于10秒我可能是OK的。如果将所有数据拉入内存或将其全部写出来需要花费几分钟的时间,那就有问题了。
我的例子是二维的,有些数组有更多。
存储数组的一种可能性-如果您想使用SQL Server -是在XML字段中每个数据库行存储一个数组。存储或提取XML应该相对较快,并且在内存中操作的XML解析器应该比磁盘上的数组索引/单元格值查找检索快。