在数据库(比如hsqldb )中存储大型数组(10000x100)的最有效方法是什么?我需要为我用java编写的某个数学程序这样做。请帮帮忙。整个数组将经常被检索和存储(不是那么多单独的元素)。此外,还需要存储有关该数组的一些元数据。
发布于 2008-10-17 20:38:34
问得好。
除非您想将数组转换为一组规范化的表,否则您可能会考虑序列化。
序列化是一个奇特的词,用于将对象转换为可以保存到磁盘或数据库的某种格式。序列化的两种主要格式是二进制和XML,我敢打赌Java对此有一定的支持。
根据您使用的数据类型,您应该能够将数组转换为XML或二进制,然后将其保存到数据库中的单个字段中。您可以通过查看http://java.sun.com/developer/technicalArticles/Programming/serialization/来开始使用Java语言中的这项技术。我知道它内置于.NET中。
希望这能有所帮助。如果我能给你更多的指导,请告诉我。
发布于 2008-10-17 20:47:23
将数据存储为BLOB并使用Java将BLOB解码为实际的Java数组如何?一口气存储和检索整个数组的效率会高得多,但对单个元素的处理就很糟糕了。
发布于 2008-10-17 20:50:21
提出一种内部表示形式--可以是XML、JSON、您自己编写的某个二进制文件,也可以是任何其他形式的序列化。
使用"blob“数据类型将其存储在表中。将与基准表关联的任何元数据存储在其他列中。
我强烈反对这样的观点:创建一个行数和列数与矩阵相同的表--这是为不使用的功能付出的非常高的代价。
事先准备好insert/select语句,并使用绑定变量更改正在处理的矩阵--不要让数据库重新解析每个请求。
https://stackoverflow.com/questions/213735
复制相似问题