[解決済み] Mysql テーブルの "Lock wait timeout exceeded; try restarting transaction" を修正する?
2022-04-28 06:03:27
質問
スクリプトから、このようなクエリをローカルデータベースに何千回も送りました。
update some_table set some_column = some_value
Whereの部分を追加するのを忘れたので、テーブルのすべての行で同じカラムに同じ値が設定され、これが何千回も行われ、カラムはインデックスされていたので、対応するインデックスもおそらく何回も更新されたでしょう。
あまりに時間がかかるので、何かおかしいと思い、スクリプトを終了させました。それ以来、コンピュータを再起動したりもしましたが、何かがテーブルで止まっています。単純なクエリの実行に非常に長い時間がかかるため、関連するインデックスを削除しようとすると、このメッセージが出て失敗します。
Lock wait timeout exceeded; try restarting transaction
innodbのテーブルなので、おそらく暗黙のうちにトランザクションがスタックしているのでしょう。どうすればこのテーブルを修正し、そこからスタックしたトランザクションを取り除くことができるでしょうか?
解決方法は?
テーブルを削除し、バックアップから復元することで問題を解決しました。
関連
-
mysqlインデックスが長すぎる特殊なキーが長すぎる解決策
-
MySQLデータベースで数百万件のデータを10秒間で挿入
-
[解決済み】MySQL エラー 1093 - FROM 句で更新のターゲット テーブルを指定できません。
-
[解決済み】マルチパート識別子をバインドできない
-
[解決済み】MySQLの「ロックを取得しようとしたときにデッドロックが見つかりました。トランザクションを再起動してみてください」を回避する方法
-
mysql5.7のインストールと、無料・長期利用を目的としたNavicateの導入プロセスについて
-
'INSERT文はFOREIGN KEY制約「FK_TourismReservation_Users」と競合していました。その
-
SQL Server のトランザクションは、try キャッチに記述しなければ、中間ステートメントがエラーを報告してもコミットされます。
-
[解決済み] ユーザー 'root'@'localhost' (パスワード: YES を使用) のアクセス拒否 - 特権がない?
-
[解決済み】トランザクションを使用していないのに「ロック待ちのタイムアウトを超えましたので、トランザクションを再起動してください」と表示される
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySQL Innodb インデックスメカニズム詳細解説
-
MySQLデータ型の詳細
-
[解決済み】MySQLで「すべての派生テーブルは独自のエイリアスを持つ必要があります」というエラーは何ですか?
-
[解決済み】ValueError: 値の長さがインデックスの長さと一致しない|Pandas DataFrame.unique()
-
SQL Server のトランザクションは、try キャッチに記述しなければ、中間ステートメントがエラーを報告してもコミットされます。
-
Djangoマイグレーションエラー 外部キー制約を追加できない
-
[解決済み] mysqladminのフラッシュホストでブロックを解除する方法
-
[解決済み] MySQLのプロセスリストを見つけ、それらのプロセスを終了させる方法は?
-
[解決済み] MySQLのクエリ結果をCSV形式で出力するにはどうすればよいですか?
-
[解決済み] MySQLで複数のカラムに一意制約を指定するには?