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