5

シングル ユーザー データベースとマルチ ユーザー データベースの違いは何ですか? シングル ユーザー データベースを使用する必要があるのはなぜですか? なぜ作られたのですか?

複数のスレッドが同じログイン資格情報を使用して同じデータベースに同時にアクセスしている場合、複数のユーザー データベースが必要ですか?

4

1 に答える 1

6

シングル ユーザー データベースとマルチ ユーザー データベースの違いは何ですか? シングル ユーザー データベースを使用する必要があるのはなぜですか? なぜ作られたのですか?

シングル ユーザー モードでは、特定の時点でデータベースへの接続を 1 つだけ許可します。

この質問に SQLite というタグを付けたので、その特定のエンジンに基づいて回答します。

SQLite の同時実行保護モデルは、ディスク上のデータベース ファイルへのファイルの直接読み取りと書き込みに基づいているため、2 つの異なるプログラムがディスク上の同じファイルに同時にまったく同時に書き込むことはできません。SQLite は、データベース ファイルに変更が加えられている間、2 番目のクエリを強制的に待機させます。

SQLite は、INSERTS および UPDATES が実行されているときに、オペレーティング システムのファイル ロックを使用して、ファイル/データベースの破損から保護します。ただし、同時に複数の読み取り専用ハンドルを許可します (デスクトップで同じファイルを読み取り専用で複数回開くことができるが、変更を保存できないのと同じように)。

SQL Server などの他のデータベースでは、バックアップ ファイルの復元、データベース構造の変更、グローバル データベース設定の変更など、データベースのメンテナンスが必要な場合にのみシングル ユーザー モードが使用されることがよくあります。

この種の変更を行っている間は、クライアントを接続してデータの読み取り/書き込みを試みることができないため、シングル ユーザー モードは便利です。

ただし、通常の状況では、パフォーマンス上の理由から、SQL Server をシングル ユーザー モードで実行することは望ましくありません。ただし、大量の Web サービスがない限り、変更がディスク上で一度に 1 つずつであっても、SQLite はパフォーマンス要件を処理できる可能性があります。

複数のスレッドが同じログイン資格情報を使用して同じデータベースに同時にアクセスしている場合、複数のユーザー データベースが必要ですか?

いいえ、まだ機能します。また、SQLite データベースは認証をまったく必要としません。ファイル/ディレクトリのアクセス許可以外に資格情報はありません。

于 2013-07-09T16:18:16.527 に答える