1

だから私はmysqliを使用していて、次のクエリを実行しようとすると:

UPDATE Security.Users SET firstName = 'RYANTEST' WHERE id = '1'

Security.Users テーブルがロックされている間、私の php スクリプトは永久にハングアップします (これまでに測定した最長は約 11 分です)。

これはエラーまたは少なくともタイムアウトを返すべきではありませんか?

mysqlでinteractive_timeoutとwaiting_timeoutを設定しようとしましたが、うまくいきませんでした。また、phpスクリプトを3秒後にタイムアウトするように設定しようとしましたが、うまくいきませんでした(スクリプト内でset_time_limit()を直接使用)。

他に何を試すことができるかわかりません。

4

2 に答える 2

0

いいえ、これは通常の動作です。テーブルがロックされている場合、テーブルのロックも必要とする他のすべてのリクエストは、前のロックが解除されるまで順番を待ちます。

これは、競争の激しい環境でデータの整合性を確保するためです。

于 2012-06-07T18:33:33.460 に答える
0

mysqlの長時間実行クエリのタイムアウトを設定する方法について説明しているこのSO投稿をご覧ください

時間がかかりすぎる場合、どうすればMySQLクエリを停止できますか?

于 2012-06-07T18:33:47.377 に答える