1

私は2つの接続を持っています。最初の接続でクエリが作成されます:

UPDATE table1 SET column1 = 5;

2 番目の接続:

SELECT t1.column1, t2.column2
FROM table2 t2
JOIN table1 t1 
     ON t1.column1 = t2.column1

table1 - InnoDB、table2 - MyISAM

MySQL サーバーは、最初のクエリを取得した後、すぐに 2 番目のクエリを取得します。更新が完了するまで、2 番目の接続のクエリは待機しますか?

4

1 に答える 1

0

SERIALIZABLE(デフォルトは)以外の分離レベルを想定するとREPEATABLE READ、2 番目のクエリは最初のクエリを待機せず、代わりにロールバック ログからデータを読み取ります。

これを確認するには、トランザクションを開始し、更新を実行してから、あるスレッドで数秒間スリープし、最初のクエリが別のスレッドでスリープしている間に 2 番目のクエリを実行します。

于 2013-01-03T14:05:47.117 に答える