3

約 4 台のサーバー (Linux) を常に (常にマルチプロセッシングで可能な限り多く) クエリをデータ サーバーに送信します (ほとんどのクエリは新しい行を作成しますが、サーバーの 1 つがデータを読み取ります)。別々のデータベースを用意したほうがよいと思います。私は sqlite3 が私の最良の選択肢だと思いますが、私は推奨事項を受け入れています。破損やデータ損失のリスクを最小限に抑えたいのですが、ヒントはありますか?

編集:データベースの重複もチェックする必要があります。

4

2 に答える 2

3

これは本当に難しい問題です。別々のデータベースを使用したい場合は、それらの一貫性を手動で維持することについて心配する必要があります (これは、実際には解決したくない問題です)。代わりに、4 つ (より一般的には N 個) のサーバーすべてが同じデータベース インスタンスを指すようにし、DB にクラスタリングを任せます。このようにして、DBMS はその同時実行性と不変性を処理でき、必要なパフォーマンスを得ることができます。

于 2012-07-09T14:47:54.477 に答える
2

このリスクを最小限に抑える最善の方法は、ACID 準拠を完全に保証し、その保証を真剣に受け止めるデータベースを選択することです。設定したオプションによっては、一部のデータベース システムが常に ACID に準拠しているとは限らないため、注意してください。たとえば、PostGres や SQL Server を使用すればかなり安全です。MySQL -もう少し考える必要があります:

追加のソフトウェア セーフガード、非常に信頼性の高いハードウェア、または少量のデータ損失や不整合を許容できるアプリケーションがある場合は、MySQL 設定を調整して、ACID の信頼性の一部と引き換えにパフォーマンスやスループットを向上させることができます。

于 2012-07-09T15:13:06.877 に答える