私はこれについて基本的な理解を持っていると思いますが、データベースのパフォーマンスについてもっと知りたいので、誰かが私に詳細を教えてくれることを願っています.
何百万ものエントリを持つ非常に大きなデータベースがあり、データベースは多くの接続をサポートしているとしましょう。非常に多くのデータがあるため、データベースで単純なクエリを実行すると遅くなります。特定の接続でのクエリが、他の接続で実行されているクエリのパフォーマンスに直接影響を与え始める時期を正確に理解しようとしています。
1 つの接続がいくつかの要素をロックすると、それらの要素を必要とする他の接続を実行しているクエリが停止することを理解しています。たとえば、次のようにします。
SELECT FOR UPDATE
選択しているものをロックします。
次のような単純なことをするとどうなりますか。
SELECT COUNT(*) FROM myTable
10 億行のテーブルがあるとしましょう。そのため、カウントの実行には時間がかかります (innodb での実行)。他の接続で実行されているクエリに影響しますか?
次のように、SELECT と JOIN を使用して大量のデータを選択するとどうなりますか。
SELECT * FROM myTable1 JOIN myTable2 ON myTable1.id = myTable2.id;
ジョインロックは他のクエリに対して何かありますか?
どのクエリが他の接続で実行されているクエリのパフォーマンスに直接影響するかを知るのは難しいと感じています。
ありがとう