mysqlサービス--1回の操作で1000万レベルのデータアーカイブエラーを記録
に質問
業務には1枚の回送状態記録データがあり、業務と時間の発展に伴い、この表のデータ量は1400 W条数に達した.必要に応じてアーカイブ操作を行う.データ量が大きくdeleteを使用すると操作効率が低く、現実的ではない.シナリオ・オペレーションの記録は次のとおりです.
表データが比較的大きいため、INSERT文を実行する時にエラーが発生した.「ERROR 1205(HY 000):Lock wait timeout exceeded;try restarting transaction」の質問です.###解決する1)insert操作を実行すると、実行するプロセスが引っかかり、原因を分析する.
2)innodbメモリ使用サイズの調整によるジャム問題の解決
業務には1枚の回送状態記録データがあり、業務と時間の発展に伴い、この表のデータ量は1400 W条数に達した.必要に応じてアーカイブ操作を行う.データ量が大きくdeleteを使用すると操作効率が低く、現実的ではない.シナリオ・オペレーションの記録は次のとおりです.
## ----> ----> ;
----
LOCK TABLES node_flow read local; , 。
UNLOCK TABLES; , UNLOCK 。
----
INSERT INTO node_flow_copy SELECT * FROM node_flow WHERE create_time > '2020-05-01'
----
ALTER TABLE node_flow RENAME TO node_flow_20200603;
RENAME TABLE node_flow_copy TO node_flow;
表データが比較的大きいため、INSERT文を実行する時にエラーが発生した.「ERROR 1205(HY 000):Lock wait timeout exceeded;try restarting transaction」の質問です.###解決する1)insert操作を実行すると、実行するプロセスが引っかかり、原因を分析する.
---- ;
Show processlist;
kill id;
command killed,sql ;
---- ;
select * from information_schema.innodb_locks;
select * from information_schema.innodb_lock_waits;
---- 、
show processlist;
show engine innodb status\G;
Show triggers from DB_NAME;
----- ;
Iotop
perf top -p `pidof mysqld`
2)innodbメモリ使用サイズの調整によるジャム問題の解決
----
show variables like 'innodb_buffer_pool%';
innodb_buffer_pool_size 5M, buffer pool ,
buffer\_pool 20G
select 20\*1024\*1024\*1024;
set global innodb\_buffer\_pool\_size=21474836480;
show processlist; killd ;