我很快需要将测量值(从 MATLAB 中)存储在数据库中——也许是 MySQL。
每个测量都将包含一些元数据和一个包含 4096 个浮点(双)条目的测量向量。我应该以哪种方式将它们存储到数据库中?然后将其转换为 aBLOB
或将它们作为ARRAY
类型列?我在JAVA jdbc Docs中找到了这些列类型。
欢迎任何提示 - 甚至是不同的解决方案。
问问题
2792 次
1 回答
1
请注意,当您选择引擎时,MySQL 没有数组类型。数组是在 ANSI/ISO SQL 标准中定义的,因此随着时间的推移,更多的 DBMS 可能会采用对它们的支持,而不是相反。
即使使用数组,您也可能需要进行一些转换,因为数组结果通常被编码为字符串表示形式,需要对其进行解析,尽管对于简单的一维双精度数组来说这不应该是问题。存储方法的选择更多地取决于数据在数据库中后您将如何处理该数据,而不是取决于您想要存储它的方式。
如果您打算对服务器上的向量内容进行操作,例如搜索值 ( :value = ANY (array_column)
) ,则使用数组是有意义的。如果您只是要检索向量,而不直接在查询中检查其内容,那么您决定使用什么存储并不重要。实际上,您可能会受益于 blob/文本存储,以避免在 DBMS 端进行任何额外处理(即,将数组值编码为结果的字符串表示形式)。
于 2012-09-13T11:05:52.963 回答