国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL數據庫show processlist指令使用解析

2020-01-18 20:40:01
字體:
來源:轉載
供稿:網友

  在實際項目開發中,如果我們對數據庫的壓力比較大,比如有大批量的查詢或者插入等sql,尤其是多線程插入等情況,針對部分執行比較慢的sql,我們可以將其kill掉,常用的一個命令就是show processlist

  1. show processlist是什么

show processlist:通過查看mysql的官網,可以發現,其主要是查詢數據庫中哪些線程正在執行,針對比較慢的線程(time的數值比較大的線程)我們可以將其kill掉。此外,show full processlist 返回的結果是實時變化的。

  2. show processlist怎么用

  有三種方式可以執行show processlist,可以通過命令行、SQL語句、Navicat客戶端等。

  1) 命令行:SHOW FULL PROCESSLIST/G

  執行結果如下:

mysql> SHOW FULL PROCESSLIST/G*************************** 1. row ***************************Id: 1User: system userHost:db: NULLCommand: ConnectTime: 1030455State: Waiting for master to send eventInfo: NULL*************************** 2. row ***************************Id: 2User: system userHost:db: NULLCommand: ConnectTime: 1004State: Has read all relay log; waiting for the slave    I/O thread to update itInfo: NULL*************************** 3. row ***************************Id: 3112User: replikatorHost: artemis:2204db: NULLCommand: Binlog DumpTime: 2144State: Has sent all binlog to slave; waiting for binlog to be updatedInfo: NULL*************************** 4. row ***************************Id: 3113User: replikatorHost: iconnect2:45781db: NULLCommand: Binlog DumpTime: 2086State: Has sent all binlog to slave; waiting for binlog to be updatedInfo: NULL*************************** 5. row ***************************Id: 3123User: stefanHost: localhostdb: apollonCommand: QueryTime: 0State: NULLInfo: SHOW FULL PROCESSLISTrows in set (0.00 sec)

  2) 可以通過sql語句查詢數據庫中相關信息的表

  select id, db, user, host, command, time, state, info from information_schema.processlist order by time desc

  3) 可以通過Navicat工具查看,如下圖是使用Navicat查詢到的截圖。

  3. show processlist怎么解讀

  下面對于使用該命令查詢到的結果進行解讀。

  Id:鏈接mysql 服務器線程的唯一標識,可以通過kill來終止此線程的鏈接。

  User:當前線程鏈接數據庫的用戶

  Host:顯示這個語句是從哪個ip 的哪個端口上發出的。可用來追蹤出問題語句的用戶

  db: 線程鏈接的數據庫,如果沒有則為null

  Command: 顯示當前連接的執行的命令,一般就是休眠或空閑(sleep),查詢(query),連接(connect)

  Time: 線程處在當前狀態的時間,單位是秒

  State:顯示使用當前連接的sql語句的狀態,很重要的列,后續會有所有的狀態的描述,請注意,state只是語句執行中的某一個狀態,一個 sql語句,已查詢為例,可能需要經過copying to tmp table,Sorting result,Sending data等狀態才可以完成

  Info: 線程執行的sql語句,如果沒有語句執行則為null。這個語句可以使客戶端發來的執行語句也可以是內部執行的語句

  4. show processlist結果怎么處理

  在上面的步驟中,我們可以查到每個線程的執行時間等信息,因此針對執行時間比較長的線程,我們可以直接將其kill掉,直接執行 kill Id號即可。

  如果要查時間超過5分鐘的,可以拼接并執行以下sql

select concat('kill ', id, ';') from information_schema.processlist where command != 'Sleep' and time > 5*60 order by time desc

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蒙阴县| 阿克苏市| 攀枝花市| 开远市| 垣曲县| 贵定县| 屏东县| 莒南县| 广德县| 英吉沙县| 伊川县| 龙江县| 津市市| 姚安县| 呼伦贝尔市| 大新县| 泸水县| 靖西县| 辉县市| 中卫市| 广饶县| 安达市| 和平区| 扎鲁特旗| 阿拉尔市| 德保县| 原平市| 昔阳县| 永州市| 邯郸市| 连平县| 体育| 永安市| 阳新县| 萨嘎县| 阳山县| 磐安县| 永年县| 玉林市| 和田县| 淮安市|