sql >> データベース >  >> RDS >> Mysql

削除操作は、innodbのテーブル全体をロックします

    まず、idが主キーまたは少なくともインデックス付きの列であると想定します。

    挿入によってテーブルがロックされないようにする必要があるため、レコードの削除と同時に他の更新/削除クエリが実行されている可能性があります。

    そうでない場合は、@a_horse_with_no_nameに記載されている「ギャップロック」が原因である可能性があります。

    したがって、この問題が再び発生したときに、すべてのプロセスを「show full processlist」の最後に保存し、「show engine innodb status」をチェックして、デッドロックに関連するプロセスIDを表示する必要があります。これは正確な取得に役立ちます問題。

    さらに、このロックを回避して、主キーに基づいてすべての行を1つずつ削除できます。




    1. PostgreSQL用のマルチデータセンターセットアップの実装-パート1-

    2. MySQLに多対多の関係を保存するための最良の方法は?

    3. アポストロフィ(一重引用符)を含むデータを挿入するときにMySQLエラーが発生しますか?

    4. MySQL5.6でのROOTパスワードのリセット