ロックは暗黙的です、はい、しかしそれはexecuteUpdate()
によって行われていません 。 MySQLのストレージエンジンがロックとロック解除を処理します。
MyISAMテーブルに書き込むときはいつでも、クエリはテーブルの書き込みロックが使用可能になるのを待ち、書き込みロックが取得され、書き込みが行われ、書き込みロックが解放されます。 MyISAMには、実際には各ワーカーが書き込みロックを待機しているため、真の書き込み同時実行性はありません。書き込み要求はシリアル化されているため、エラーは発生しません。
InnoDBの状況は似ていますが、非常に異なります。InnoDBはテーブルの一部のみをロックし、通常は行レベルでロックします。InnoDBはインデックス内の範囲をロックできるため、インデックス内のその範囲の行をロックできます(およびそれらに先行するギャップ)。このロックはテーブルロックよりもきめ細かく、同時実行動作を改善できますが、同じ行での同時操作はありません。各ワーカーは、必要な1つまたは複数のロックを待機します。
どちらの場合も、ロックは暗黙的に取得されます。