MySQL通過show processlist查看項目的mysql寫的有問題

如果是因爲sql問題引起的項目查詢慢,可以通過以下方法進行查看並及時優化sql 語句,達到項目優化的效果。
 
1.登錄項目終端:
 
切換到mysql bin目錄;
 
用到的命令:
 
cd 切換目錄;
 
ls 列出 當前目錄下的內容;
 
2.到mysql 的bin目錄下後 登錄數據庫:
 
mysql [-u username] [-h host] [-p password] [dbname]
 
mysql -u  -h   -p  
 
3.用 show processlist;語句
 
會顯示當前正在進行的線程,不僅可以查看當前所有的連接數,還可以查看當前的連接狀態幫助識別出有問題的查詢語句等
 
顯示哪些線程正在運行。
 
show processlist;只列出前100條,如果想全列出請使用show full processlist; 
 
您也可以使用mysqladmin processlist語句得到此信息。
 
如果您有SUPER權限,您可以看到所有線程。
 
否則,您只能看到您自己的線程(也就是,與您正在使用的MySQL賬戶相關的線程)。
 
如果您不使用FULL關鍵詞,則只顯示每個查詢的前100個字符。
 
以下圖片各列的含義:
 
①.id列,用戶登錄mysql時,系統分配的"connection_id",可以使用函數connection_id()查看
 
②.user列,顯示當前用戶。如果不是root,這個命令就只顯示用戶權限範圍的sql語句
 
③.host列,顯示這個語句是從哪個ip的哪個端口上發的,可以用來跟蹤出現問題語句的用戶
 
④.db列,顯示這個進程目前連接的是哪個數據庫
 
⑤.command列,顯示當前連接的執行的命令,一般取值爲休眠(sleep),查詢(query),連接(connect)等
 
⑥.time列,顯示這個狀態持續的時間,單位是秒
 
⑦.state列,顯示使用當前連接的sql語句的狀態,很重要的列。state描述的是語句執行中的某一個狀態。一個sql語句,以查詢爲例,可能需要經過copying to tmp table、sorting result、sending data等狀態纔可以完成
 
⑧.info列,顯示這個sql語句,是判斷問題語句的一個重要依據
 
0
 
 
 
如果有異常的sql ,會顯示在info 列裏面,我們可以拿到異常sql 去數據表進行查詢;
給sql前加上desc可查看sql查詢狀態
0
rows表示此查詢掃描數據表的記錄數。
 
拿到此信息後可對sql或者數據表進行優化,以加速sql查詢速度,達到項目優化的效果。
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章