質問 1: 密行列と疎行列を格納する専用のデータベースはありますか? 私はグーグルで検索しましたが、何も見つかりませんでした...
問題の行列は巨大 (10^5 x 10^5) ですが、まばらです。つまり、その値のほとんどはゼロであり、ゼロ以外の値のみを保存する必要があります。ということで、こんな表を作ってみました。
2D Matrix
---------------
X Y val
---------------
1 2 4.2
5 1 91.0
9 3 139.1
等々。3 列、2 列は座標、3 列目はスパース行列のセルの値です。質問 2: これはスパース行列を格納する最良の方法ですか? MongoDB も検討しましたが、マトリックスのセルごとに 1 つのドキュメントを作成するのはオーバーヘッドが大きすぎるようです。テーブル指向のデータベースは遅いですが、VoltDB を使用できます :) サイドノード: Redis ハッシュを考えましたが、2 次元にすることはできません (2D マトリックスをシリアル化して 1D にする方法を見つけました。その方法で保存できます) Redis ハッシュまたはリスト)
質問 3: VoltDB は 1 行あたり何バイトを使用しますか? 座標は 0 から 10^5 の範囲の整数になり、セルの値は float になります。