私はエリックに同意します。 TRUNCATETABLEがその方法です。ただし、何らかの理由でそれを使用できない場合(たとえば、実際に使用しない場合) テーブル内のすべての行を削除したい場合)、次のオプションを試すことができます:
- 行を小さなバッチで削除します(例:DELETE FROM bundle_inclusions WHERE id BETWEEN?と?)
- MyISAMテーブルの場合(実際には、これはInnoDBでも機能する可能性があります)、DELETEの前にLOCKTABLEを発行してみてください。これにより、排他的アクセスが保証されます。
- InnoDBテーブルの場合は、後 タイムアウトが発生した場合は、SHOWINNODBSTATUSを使用してください。これにより、ロックの取得が失敗した理由についての洞察が得られるはずです。
- SUPER権限をお持ちの場合は、SHOW PROCESSLIST ALLを試して、テーブルを使用している他の接続(存在する場合)を確認してから、KILLを使用して競合している接続を取り除くことができます。
他にもたくさんの可能性があると思います。これらのいずれかがお役に立てば幸いです。