在使用阿里雲的RDS數據庫實例做一些數據量很大的sql或存儲過程查詢操作時,經常導致IOPS或CPU爆滿,導致死鎖,沒有反映,實例直接癱瘓。這個時候要不就重新數據庫實例,或者使用命令kill掉語句。
SHOW PROCESSLIST
kill xxxx
MYSQL出現WAITING FOR TABLE METADATA LOCK
使用管理員權限登錄mysql數據庫查看未提交的事務:select * from information_schema.innodb_trx
其中字段解釋如下:
- trx_state: 事務狀態,一般爲RUNNING
- trx_started: 事務執行的起始時間,若時間較長,則要分析該事務是否合理
- trx_mysql_thread_id: MySQL的線程ID,用於kill
- trx_query: 事務中的sql