解決MySQL中死進程(一個聯合查詢耗時32s)

 

解決MySQL中死進程(一個聯合查詢耗時32s)

 

很奇怪的現象,一個聯合查詢(in)直接執行sql腳本的時候,Navicat Premium直接假死;mysql

 

 

檢查是否有死進程:sql

 

  1. SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;  spa


能夠看到一個時間持續了比較久的事務,如今時間是13點了,而這個事務的開始時間(trx_wait_started )是2012-11-09 12:15:14,線程

 

顯然是不正常的,咱們看這個事務對應的mysql的線程ID(trx_mysql_thread_id)是82230715,就是這個事務致使的 。3d

 

殺掉這個進程:進程

 

 

  1. kill 82230715  事務


再次查詢,恢復正常。rem

 

可以用join的時候儘可能不要用in,害死人不償命~it


查看正在鎖的事務 

    SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

查看等待鎖的事務 

    SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
thread

相關文章
相關標籤/搜索