0

私はそれを読みました

「複数のユーザーが同時にデータベースにアクセスする必要がある場合、ロックが発生します。」、( ref )

また

「データベースロックは、2人以上のデータベースユーザーがまったく同じデータをまったく同じ時間に更新するのを防ぐために存在します」 - ( ref ).

それでも、データベースのロックが発生したときにどのデータがロックされるのかわかりません。

最初の例では、2 人のユーザーが sql を実行して、同時に複数の行を選択します。ユーザー 1 が最初に実行されます。

ユーザー 1:select * from products where price > 100;

ユーザー 2:select * from products where price < 100;

ユーザー 1 のクエリは、ユーザー 2 のデータベースをロックしますか?

2 番目の例では、ユーザー 1 が製品テーブルを更新したいと考えています。ユーザー 2 は製品テーブルからデータを選択したいと考えています。ユーザー 1 が最初に実行されます。ユーザー 1 のアクションは、ユーザー 2 のデータベースをロックしますか?

ありがとう!

4

2 に答える 2

0

両方の例で、各ユーザーはデータベースからの読み取りのみを試みており、更新は試みていません。したがって、どちらも他方を妨げません。データベースを更新しようとしているユーザーがいた場合、その時点でユーザーがブロックされ始めます。他の人がコメントしているように、それが正確にどのように行われるかは、かなり広い質問です。

于 2016-03-24T18:38:37.563 に答える