2

node.js をリーダーとして、 1 つのc プロセスをライターとして sqlite3 を使用しようとしています。

http://www.sqlite.org/faq.html#q5で読んだことから、複数のプロセスまたは多くの読み取りプロセスと 1 つの書き込みプロセスで sqlite3 を使用できることを理解しています。また、sqlite3 は fopen (Oracle ではなく) の代替品であるとも述べられています。

プロセスがデータベースを更新するときに知りたいこと。
1. DB が更新されたことを他のプロセスに通知しますか?
2. ライター プロセスが 1 時間ごとに 100MB のデータをロードし、100MB のデータを削除する場合、sqlite3 は適切な選択ですか?
3. #2 に関して、他のプロセスはファイルまたはメモリ キャッシュをリロードする必要がありますか? キャッシングメカニズムも使用していますか?他のプロセスはどのデータが更新されたかを知っていますか?
4. リーダー プロセスとライター プロセスをマージすると役に立ちますか? [そのために、ソケットを使用してライターサーバーから情報を取得する必要があるため、1 つのソケット接続が追加されます]。

PS: たぶん、この質問は、情報がデータベース ファイルにどのように保存されているかに関連していますか? 情報の更新・削除後の取り扱いは?

4

1 に答える 1

1
  1. 番号
  2. 100Mbはおそらく境界線です。PostgreSQLのような実際のデータベースを検討します
  3. 複数の書き込みプロセスがある場合、他のプロセスはデータを照会して何が変更されたかを確認する必要があります sqlite は適切な選択ではない可能性があります
  4. 将来、異なるマシンでプロセスを実行する場合、sqlite は間違いなく良い選択ではありません。
于 2013-09-13T14:25:08.597 に答える