4

次のような 20 GB のファイルがあります。

Read name, Start position, Direction, Sequence

読み取り名は必ずしも一意ではないことに注意してください。

たとえば、私のファイルのスニペットは次のようになります

Read1, 40009348, +, AGTTTTCGTA
Read2, 40009349, -, AGCCCTTCGG
Read1, 50994530, -, AGTTTTCGTA

これらの行を保存できるようにしたい

  1. 2 番目の値に基づいてファイルをソートし続ける
  2. ソートされたファイルを反復処理する

これにはデータベースが利用できるようです。

ドキュメントは、 dbmを使用してファイルをソートして反復処理できないことを暗示しているようです。

したがって、 SQLite3で 1) と 2) ができるかどうかは疑問です。ファイルを SQL クエリでソートし、sqlite3 で結果セットを反復処理できることはわかっています。しかし、RAM が 4 GB のコンピュータでメモリ不足にならずにこれを実行できますか?

4

2 に答える 2

8

SQLite は1) と 2) の両方を実行できます。

試してみて、発生した問題を報告することをお勧めします。

デフォルトのページ サイズが 1024 バイトの場合、SQLite データベースのサイズは 2 テラバイト (2 41バイト) に制限されます。また、より大きなデータベースを処理できたとしても、SQLite はデータベース全体を 1 つのディスク ファイルに格納し、多くのファイル システムはファイルの最大サイズをこれよりも小さく制限しています。したがって、この規模のデータベースを検討している場合は、そのコンテンツを複数のディスク ファイル、場合によっては複数のボリュームに分散するクライアント/サーバー データベース エンジンの使用を検討することをお勧めします。

于 2012-11-08T17:06:34.560 に答える
2

大規模な SQLlite データベースに関するこの質問を参照してください。

重要な点:

テーブルが 1 つだけの sqlite ファイルに複数の行を挿入しようとしました。ファイルが約 7GB のとき (行数について具体的に言えなくて申し訳ありません)、挿入に時間がかかりすぎていました。すべてのデータを挿入するテストには 24 時間ほどかかると見積もっていましたが、48 時間経っても完了しませんでした。

システム仕様は言及されていませんが、使用されたサンプルは最大 50GB のデータでした。

于 2012-11-08T17:18:54.733 に答える