私が解決しなければならない問題は、ファイル システム ツリーに相当するものをデータベースに格納することです (検索操作を高速化するため)。ツリーには +400.000.000 の inode が含まれており、各 inode に対していくつかのメタ情報を保存する必要があります (平均ファイル パスは 100 バイトで、メタ情報は ~50 バイトです)。
C ++プログラムから次の操作が行われ
ます
。
これまで、リレーショナル データベースのみを考慮してきました: MySQL、MariaDB、PostgresSQL (これまでテストを行っていません。まだ「情報収集」段階です)。そのような DB にツリーを格納する方法に関するドキュメントをいくつか読みました。
最初のオプション
- 隣接リスト モデル: テーブル内の各項目には、その親へのポインターが含まれます。
http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/
2 番目のオプション
- すべてのディレクトリを別のテーブルに保存する -
残りのファイル用に別のテーブルを用意し、ファイルが属するディレクトリへのポインタを保持する
したがって、テーブルは次のようになります
。
/home
/home/test/
ファイルテーブル:
file1
file2
私の質問:
1. リレーショナル データベースに巨大なツリーを格納するのに適した別のモデルを知っていますか? 2. NoSQL DB を検索する場合、どこから始めればよいですか?
どうもありがとう。