一:檢查是否鎖表, 查詢進(jìn)程并殺死進(jìn)程
10年積累的網(wǎng)站建設(shè)、網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有涼州免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
1) 查詢是否鎖表
show open tables where in_use 0;
2) 查詢進(jìn)程(如果您有SUPER權(quán)限,您可以看到所有線程。否則,您只能看到您自己的線程)
show processlist;
二:查看在鎖事務(wù),殺死事務(wù)對應(yīng)的線程ID
1) 查看正在鎖的事務(wù)
select * from information_schema.INNODB_LOCKS;
2) 殺死進(jìn)程id(就是[select * from information_schema.INNODB_LOCKS; ]命令的trx_mysql_thread_id列)
kill 線程ID
3) 查看等待鎖的事務(wù)
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
其它:
1) 查看服務(wù)器狀態(tài)
show status like '%lock%';
2) 查看超時(shí)時(shí)間:
show variables like '%timeout%';
可直接在mysql命令行執(zhí)行:show engine innodb status\G;
查看造成死鎖的sql語句,分析索引情況,然后優(yōu)化sql然后show processlist;
show status like ‘%lock%’
show OPEN TABLES where In_use 0; 這個(gè)語句記錄當(dāng)前鎖表狀態(tài)
另外可以打開慢查詢?nèi)罩?,linux下打開需在my.cnf的[mysqld]里面加上以下內(nèi)容:
slow_query_log=TRUE(有些mysql版本是ON)
slow_query_log_file=/usr/local/mysql/slow_query_log.txt
long_query_time=3
擴(kuò)展資料:
MySQL鎖定狀態(tài)查看命令
Checking table:正在檢查數(shù)據(jù)表(這是自動的)。?
Closing tables:正在將表中修改的數(shù)據(jù)刷新到磁盤中,同時(shí)正在關(guān)閉已經(jīng)用完的表。這是一個(gè)很快的操作,如果不是這樣的話,就應(yīng)該確認(rèn)磁盤空間是否已經(jīng)滿了或者磁盤是否正處于重負(fù)中。
Connect Out:復(fù)制從服務(wù)器正在連接主服務(wù)器。?
Copying to tmp table on disk:由于臨時(shí)結(jié)果集大于tmp_table_size,正在將臨時(shí)表從內(nèi)存存儲轉(zhuǎn)為磁盤存儲以此節(jié)省內(nèi)存。
Creating tmp table:正在創(chuàng)建臨時(shí)表以存放部分查詢結(jié)果。
deleting from main table:服務(wù)器正在執(zhí)行多表刪除中的第一部分,剛刪除第一個(gè)表。
第一步,查出已鎖的進(jìn)程
查看正在鎖的事務(wù)
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
``
查看等待鎖的事務(wù)
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
``
INNODB_TRX表主要是包含了正在InnoDB引擎中執(zhí)行的所有事務(wù)的信息,包括waiting for a lock和running的事務(wù)
select * from information_schema.innodb_trx
``
第二步,kill進(jìn)程
show engin innodb status; //最后一次死鎖信息及sql
show open tables where in_use 0 //查看鎖表
第一步,查看行鎖使用情況,命令:
show statue like 'innodb_row_lock%';
如下圖所示:
第二步,創(chuàng)建數(shù)據(jù)庫表monitor_amount,如下圖所示:
第三步,查看innodb的狀態(tài),命令:
show innodb status \G;
如下圖所示:
第四步,向數(shù)據(jù)庫表monitor_amount插入四條記錄,如下圖所示:
第五步,再次查看innodb狀態(tài),如下圖所示:
第六步,可以利用刪除表命令來停止查看,如下圖所示:
分享題目:怎么查看mysql行鎖 mysql 查看當(dāng)前鎖
瀏覽地址:http://jinyejixie.com/article40/dopsieo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、云服務(wù)器、做網(wǎng)站、網(wǎng)站制作、企業(yè)建站、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)