0

基本情報 (ID、挿入日、最終更新日、および返される実際のデータの大きな文字列) を格納するための組み込みデータベースを必要とするサービスを作成しています。複数のスレッドが同時に異なる行を読み取り、少なくとも 1 つのスレッドが同時に行を更新します。複数のスレッドで更新を行うオプションを希望しますが、更新を実行できるスレッドが 1 つだけでもサービスを提供できます。基本的にこれはキャッシュ サービスですが、通常はデータの 99% がキャッシュに格納され、1 分あたりの要求数を制限するサービスのキャッシュであるため、不足しているものを 1 つのスレッドに入力することができます。したがって、すべてのデータをキャッシュします。 .

これをWindowsまたはLinuxで実行できるようにしたいので、dotnetとmonoのサポートは必須ですが、私が調べたほとんどすべての組み込みデータベースは同時実行をサポートしていないため、それは私にとって必須です. オブジェクト データベースまたは SQL データベースは、dotnet とうまく統合されている限り、どちらでも構いません。

同時実行をサポートする組み込みデータベースを必要とする同様の状況で、誰かが経験を積んでいることを願っています。また、これはこの段階では家庭用の個人的なプロジェクトであるため、可能であれば無料の(コスト面での)データベースを好みます。

私は多くのデータベース (STSdb、SQL CE、Firebird、codeplex 上のオープン ソースのヒープ) を見てきましたが、mono/linux で動作しないか、同時実行をサポートしていないようです。

4

3 に答える 3

4

Mono ( http://www.mono-project.com/SQLite ) ではサポートされていないSQLiteを使用でき、同時実行をサポートしています。FAQ の質問5から引用します。

Q:複数のアプリケーションまたは同じアプリケーションの複数のインスタンスが、1 つのデータベース ファイルに同時にアクセスできますか?

A:複数のプロセスが同時に同じデータベースを開くことができます。複数のプロセスが同時に SELECT を実行できます。ただし、いつでもデータベースに変更を加えることができるプロセスは 1 つだけです。

于 2012-07-22T23:59:35.437 に答える
0

どのくらいのデータについて話しているのですか?
データベースである必要はありますか?

その「テーブル」が 1 つだけの場合、ファイル システムを使用する小さなレイヤーを作成し、行ごとに id-createdDate-updatedDate という名前のフォルダーを 1 つ作成し、そこにテキスト ファイルを入れるだけでよいでしょうか? あなたはまだ同時読み取りを取得し、書き込みを制限します

于 2012-07-23T00:00:26.387 に答える