MyISAMにはさまざまな種類のロックがあります。 SELECT
操作はREADLOCKを配置します テーブルの上。アクティブな書き込みロックがない限り、いつでも複数のアクティブな読み取りロックが存在する可能性があります。 。テーブルを変更する操作。 INSERT
、UPDATE
、DELETE
またはALTER TABLE
書き込みロックを配置します テーブルの上。書き込みロックは、アクティブな読み取りロックがない場合にのみテーブルに配置できます。アクティブな読み取りロックがある場合、MyISAMは、すべてのアクティブな読み取りロックが期限切れになるとすぐにアクティブになるように書き込みロックをキューに入れます。
同様に、アクティブな書き込みロックがある場合、テーブルに読み取りロックを設定しようとすると、テーブルの書き込みロックが期限切れになるまで、ロック(および関連するクエリ)がキューに入れられます。
最終的に、これはすべて次のことを意味します:
- アクティブな読み取りロック(共有ロックとも呼ばれます)はいくつでも持つことができます
- アクティブな書き込みロック(排他ロックとも呼ばれます)は1つだけにすることができます
詳細については、 http://dev.mysqlを参照してください。 com / doc / refman / 5.5 / en / internal-locking.html