问题一:是否有专门的数据库来存储密集和稀疏矩阵?我用谷歌搜索但没有找到任何...
有问题的矩阵很大(10 ^ 5 x 10 ^ 5)但它很稀疏,这意味着它的大部分值都是零,我只需要存储非零值。所以我想制作一个这样的表:
2D Matrix
---------------
X Y val
---------------
1 2 4.2
5 1 91.0
9 3 139.1
等等。3 列,两列用于坐标,第三列用于稀疏矩阵中该单元格的值。问题 2:这是存储稀疏矩阵的最佳方式吗?我也考虑过 MongoDB,但似乎为矩阵的每个单元格制作一个文档会产生太多开销。面向表的数据库很慢,但我可以使用 VoltDB :) 侧节点:我想到了 Redis 哈希,但不能使它成为二维的(找到了一种序列化 2D 矩阵并使其成为 1D 的方法,这样我可以存储在Redis 哈希甚至列表)
问题 3:VoltDB 将使用每行多少字节?坐标将是从 0 到 10^5 的整数,可能更多,单元格的值将是浮点数。