2016-09-25 7 views
1

私は普通のバイナリ形式で保存し、メモリにチャンクでロードすることを選択した重いデータセットを使用しています。しかし、最小のチャンクでさえ私のコンピュータのメモリ(16GB)を超えようとしているので、私はそれをさらに断片化したり別の解決策を見つけなければなりません。データセット全体は約半分のテラバイトです。dbサイズがsqliteのメモリを超えたらどうなりますか?

私は、sqliteが最大32TBのデータで動作できることをwiki上で見てきました。これはクールです。しかし、私はそれを使用するために32TBのメモリを持っている必要があるかどうかを知ることはできませんでした、またはあなたはより小さなメモリを持って、ハードドライブ上に物事を格納することができます。私はそれが可能でなければならない、私は行を追加する、行を読む、任意の値を持つすべての行を選択するような非常に単純な操作が必要であることです

私は勉強に投資することを嫌うので、 sqliteは、私が思ったように動作しないことを知るためにのみ使用します。また、助けてくれると思われる洞察があれば、共有してください。

+0

あなたは大丈夫でしょう。 sqliteは、必要なデータベースの部分だけをロードすることによって、自動的にメモリを管理します。 – redneb

答えて

0

SQLiteを含むほとんどのデータベースは、チャンク内のデータを処理できます。つまり、一度に1つのレコードのみをメモリにロードする必要があります。 (ただし、キャッシングに必要なメモリを増やすことで処理速度が向上します)。また、中間データが大きすぎる場合は、temporary filesに移動できます。これはデフォルト動作であるため、明示的にアドバタイズされません。

データベース全体がメモリis possibleにありますが、とにかく保存されない一時的なデータについてのみ意味があります。

+0

ありがとう、男、とても助かりました! – pandreyanov

関連する問題