テーブルから行を削除しようとすると、これらのエラーが発生し続けます。ここでの特別なケースは、同時に 5 つのプロセスを実行している可能性があることです。
テーブル自体は、最大 450 万行の Innodb テーブルです。WHERE 句で使用されている列にインデックスがありません。他の指標は想定どおりに機能しています。
これはトランザクション内で行われます。最初にレコードを削除し、次に置換レコードを挿入します。すべてのレコードが挿入された場合にのみ、トランザクションをコミットする必要があります。
エラーメッセージ:
クエリ エラー: ロック待機タイムアウトを超えました。DELETE FROM tablename WHERE column=value の実行中にトランザクションを再開してみてください
ここで参照列にインデックスを作成すると役に立ちますか? 行を明示的にロックする必要がありますか?
質問#64653でいくつかの追加情報を見つけましたが、それが私の状況を完全にカバーしているとは思いません。
エラーの原因が DELETE ステートメントであることは確かですか、それともクエリ内の他のステートメントである可能性がありますか? DELETE ステートメントは最初のステートメントなので、論理的に見えますが、よくわかりません。