0

別のユーザーによって UPDATE に呼び出された InnoDB テーブルのロックされた行はどうなりますか? ロックが解除されてから、他のユーザーの呼び出しによって更新されるまで待機しますか? その結果、ユーザーページはロックが解除されるまで待機してから実行され、他のユーザー表示ページで遅延が発生しますか?

人々が写真をアップロードできるウェブサイトと、アップロードされた写真の現在の数(およびフォルダー名「1」、「2」など)を保持する1行のみのテーブルがあり、1つのフォルダーが特定の数の写真を保持できます写真 (たとえば 7000) ...これが増加する理由です。

スクリプトを正しく実行したかどうかに興味があります。

テーブル (mya_pictures) には基本的に 1 つの行があり、そこには現在使用されているフォルダー ("1"、"2"、"3"...) の列と、現在のフォルダー内の現在の画像数 (これはできません) があります。 7000 を超える - そのフォルダ内のファイルの最大数)...

ファイルが正常にアップロードされると、ファイルの増分は UPDATE で行われます。マルチユーザー環境でこれがうまくいくかどうか疑問に思っています。

ありがとう

4

1 に答える 1

1

ドキュメントに従って:

2 番目のトランザクションが行を更新するか、以前のトランザクションによって非互換モードで既にロックされているテーブルをロックする必要がある場合、 InnoDB はその行のロック要求を対応するキューに追加します。トランザクションがロックを取得するには、その行またはテーブルのロック キューに以前に入力された互換性のないすべてのロック要求を削除する必要があります (これらのロックを保持または要求しているトランザクションは、コミットまたはロールバックします)。

ここで Innodb のロックについて読むことができます。

http://dev.mysql.com/doc/refman/5.0/en/innodb-lock-modes.html

http://dev.mysql.com/doc/refman/5.0/en/innodb-lock-modes.html

~K

于 2013-06-25T10:14:49.960 に答える