gpt4 book ai didi

mysql - 在数据库中存储大量大型整数数组的有效方法

转载 作者:可可西里 更新时间:2023-11-01 07:35:13 27 4
gpt4 key购买 nike

我需要根据整数 ID 和字符串名称存储一个长度约为 1000 的整数数组。这样的元组数量接近160000。

我将选择一个数组并计算所有其他数组的均方根偏差 (RMSD),并将 (ID1,ID2,RMSD) 元组存储在另一个表中。

请问您能建议最好的方法吗?我目前正在将 MySQL 用于同一项目中的其他数据表,但如有必要,我会切换。

最佳答案

一种可能是将数组存储在 BINARYBLOB 类型的列中。鉴于数组的基本类型是整数,您可以一次遍历四个字节以提取每个索引处的值。

如果我对上下文的理解正确,数组必须都具有相同的固定长度,因此 BINARY 类型的列将是最有效的,前提是它提供足够的空间来容纳您的数组。您不必在这里担心数据库规范化,因为您的数组在此上下文中是一个原子单元(同样,假设我正确理解了问题)。

如果您确实需要访问每个数组的一部分,那么这可能不是最实用的数据存储方式。

次要考虑是在数据库本身中计算 RMSD 值,还是在服务器上以某种外部语言计算。正如您在评论中提到的,这将是在数据库中最有效的做法。不过,听起来查询的开销还是相当大的,而且执行时间可能不是主要问题:用另一种语言编写代码的简单性可能更可取。还取决于计算 RMSD 值的成本相对于往返数据库查询的成本,它甚至可能没有那么大的区别?

或者,正如您在问题中提到的,使用 Postgres 可能值得考虑,因为它的 PL/pgSQL 语言更具表现力。

顺便说一句,如果您想搜索更多关于好的方法的信息,搜索databasetime series 可能会有成果。您的数据不一定是时间序列数据,但许多相同的注意事项也适用。

关于mysql - 在数据库中存储大量大型整数数组的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21377987/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com