วิธีการกำหนด `แสดงกระบวนการรายการ 'ใน mysql?


184

ฉันต้องการที่จะสั่งซื้อตามเวลา แต่ดูเหมือนจะไม่มีทางทำเช่นนั้น?

mysql> show processlist;
+--------+-------------+--------------------+------+---------+--------+----------------------------------+------------------------------------------------------------------------------------------------------+
| Id     | User        | Host               | db   | Command | Time   | State                            | Info                                                                                                 |
+--------+-------------+--------------------+------+---------+--------+----------------------------------+------------------------------------------------------------------------------------------------------+
|      1 | system user |                    | NULL | Connect | 226953 | Waiting for master to send event | NULL                                                                                                 | 
|      2 | system user |                    | v3   | Connect |  35042 | Locked                           | update postings a
                                left join cities b on b.id=a.job_city_id
                                left join states h on h.id=b.stat | 
| 313888 | irnadmin    | 172.19.0.239:40136 | v3   | Sleep   |      0 |                                  | NULL                                                                                                 | 
| 314075 | irnadmin    | 172.19.0.239:41113 | v3   | Sleep   |      0 |                                  | NULL                                                                                                 | 
| 314118 | irnadmin    | 172.19.0.239:41282 | v3   | Query   |  34978 | freeing items                    | SELECT id, screen_name, type, active, bound, LastLogin, robotno, protocol FROM accounts WHERE email_ | 
| 314686 | irnadmin    | 172.19.0.239:43251 | v3   | Sleep   |      0 |                                  | NULL                                                                                                 | 
| 314732 | irnadmin    | 172.19.0.239:43436 | v3   | Query   |  34978 | freeing items                    | SELECT id, screen_name, type, active, bound, LastLogin, robotno, protocol FROM accounts WHERE email_ | 
| 314984 | irnadmin    | 172.19.0.239:44366 | v3   | Sleep   |      2 |                                  | NULL                                                                                                 | 
| 315051 | irnadmin    | 172.19.0.239:44713 | v3   | Query   |      0 | NULL                             | NULL                                                                                                 | 
| 315198 | irnadmin    | 172.19.0.239:51569 | v3   | Sleep   |      2 |                                  | NULL                                                                                                 | 
| 315280 | irnadmin    | 172.19.0.239:51849 | v3   | Query   |  34978 | freeing items                    | SELECT id, email_address, type, closed, robotno FROM accounts WHERE screen_name = 'ShantanuS'        | 
| 315320 | irnadmin    | 172.19.0.239:52045 | v3   | Query   |  34978 | freeing items                    | SELECT id, screen_name, type, active, bound, LastLogin, robotno, protocol FROM accounts WHERE email_ | 
| 315384 | irnadmin    | 172.19.0.239:52463 | v3   | Sleep   |      1 |                                  | NULL                                                                                                 | 
| 452248 | irnadmin    | 172.19.0.28:54899  | v3   | Query   |  34978 | freeing items                    | SELECT id, email_address, type, closed, robotno FROM accounts WHERE screen_name = 'LIZW0218'         | 
| 452291 | irnadmin    | 172.19.0.28:55045  | v3   | Sleep   |      1 |                                  | NULL                                                                                                 | 
| 452316 | irnadmin    | 172.19.0.28:55144  | v3   | Sleep   |      0 |                                  | NULL                                                                                                 | 
| 452353 | irnadmin    | 172.19.0.28:55278  | v3   | Sleep   |      0 |                                  | NULL                                                                                                 | 
| 452382 | irnadmin    | 172.19.0.28:55371  | v3   | Query   |  34978 | freeing items                    | SELECT o.account_id FROM online o JOIN accounts a ON a.id=o.account_id WHERE o.server_id IS NULL AND | 
| 452413 | irnadmin    | 172.19.0.28:55479  | v3   | Sleep   |      1 |                                  | NULL                                                                                                 | 
| 452541 | irnadmin    | 172.19.0.28:55946  | v3   | Query   |  34978 | freeing items                    | SELECT o.account_id FROM online o JOIN accounts a ON a.id=o.account_id WHERE o.server_id IS NULL AND | 
| 452626 | irnadmin    | 172.19.0.28:56215  | v3   | Sleep   |      2 |                                  | NULL                                                                                                 | 
| 452711 | irnadmin    | 172.19.0.28:39916  | v3   | Sleep   |      0 |                                  | NULL                                                                                                 | 
| 452781 | irnadmin    | 172.19.0.28:40161  | v3   | Sleep   |      1 |                                  | NULL                                                                                                 | 
| 452904 | irnadmin    | 172.19.0.28:40955  | v3   | Query   |  34978 | freeing items                    | select a.id, aa.screen_name, i.requester from interview_requests i left join accounts aa on aa.id=i. | 
| 453014 | irnadmin    | 172.19.0.28:41291  | v3   | Query   |  34978 | freeing items                    | SELECT o.account_id FROM online o JOIN accounts a ON a.id=o.account_id WHERE o.server_id IS NULL AND | 
| 453057 | irnadmin    | 172.19.0.28:41377  | v3   | Query   |  34978 | freeing items                    | select a.id, aa.screen_name, i.requester from interview_requests i left join accounts aa on aa.id=i. | 
| 453084 | irnadmin    | 172.19.0.28:41441  | v3   | Sleep   |      0 |                                  | NULL                                                                                                 | 
| 453112 | irnadmin    | 172.19.0.28:41536  | v3   | Sleep   |      0 |                                  | NULL                                                                                                 | 
| 453156 | irnadmin    | 172.19.0.28:41653  | v3   | Query   |  34978 | freeing items                    | SELECT protocol FROM accounts WHERE email_address= '***@gtalk.jabber.jobirn.c | 
| 453214 | irnadmin    | 172.19.0.28:41800  | v3   | Sleep   |      5 |                                  | NULL                                                                                                 | 
| 453243 | irnadmin    | 172.19.0.28:41991  | v3   | Sleep   |      0 |                                  | NULL                                                                                                 | 
| 453313 | irnadmin    | 172.19.0.28:42255  | v3   | Query   |  34978 | freeing items                    | SELECT o.account_id FROM online o JOIN accounts a ON a.id=o.account_id WHERE o.server_id IS NULL AND | 
| 453396 | irnadmin    | 172.19.0.28:53718  | v3   | Sleep   |      2 |                                  | NULL                                                                                                 | 
| 453476 | irnadmin    | 172.19.0.28:54019  | v3   | Sleep   |      0 |                                  | NULL                                                                                                 | 
| 453561 | irnadmin    | 172.19.0.28:54352  | v3   | Sleep   |      3 |                                  | NULL                                                                                                 | 
| 453594 | irnadmin    | 172.19.0.28:54456  | v3   | Sleep   |      0 |                                  | NULL                                                                                                 | 
| 453727 | irnadmin    | 172.19.0.28:55166  | v3   | Query   |  34978 | freeing items                    | SELECT id, screen_name, type, active, bound, LastLogin, robotno, protocol FROM accounts WHERE email_ | 
| 453786 | irnadmin    | 172.19.0.28:55320  | v3   | Sleep   |      4 |                                  | NULL                                                                                                 | 
| 610140 | irnadmin    | 172.19.0.28:33848  | v3   | Query   |  34978 | freeing items                    | select a.id, aa.screen_name, i.requester from interview_requests i left join accounts aa on aa.id=i. | 
| 685119 | irnadmin    | 172.19.0.27:37251  | v3   | Query   |  34980 | Sending data                     | select postings.id id,category, job_desc_title,
        IF(c1.name is not null,c1.name,IF(c2.name is not n | 
| 685226 | irnadmin    | 172.19.0.139:57274 | v3   | Query   |  34735 | Locked                           | SELECT job_desc_title,job_desc,job_state_name,job_city_name,company_categories.name,postings.categor | 
| 685229 | irnadmin    | 172.19.0.139:57278 | v3   | Query   |  34735 | Locked                           | SELECT job_desc_title,job_desc,job_state_name,job_city_name,company_categories.name,postings.categor | 
| 685232 | irnadmin    | 172.19.0.139:57283 | v3   | Query   |  34734 | Locked                           | select job_desc_title,job_desc from postings where id=287650                                         | 
| 685233 | irnadmin    | 172.19.0.139:57286 | v3   | Query   |  34734 | Locked                           | SELECT accounts.screen_name,postings.url url, accounts.type owner_type, postings.id ID, postings.job | 
| 685235 | irnadmin    | 172.19.0.28:37502  | v3   | Query   |  34734 | Locked                           | SELECT accounts.screen_name,postings.url url, accounts.type owner_type, postings.id ID, postings.job | 
| 686496 | irnadmin    | 172.19.0.239:33306 | v3   | Query   |  32589 | Locked                           | SELECT accounts.screen_name,postings.url url, accounts.type owner_type, postings.id ID, postings.job | 
| 686503 | irnadmin    | 172.19.0.28:54051  | v3   | Query   |  32588 | Locked                           | SELECT job_desc_title, job_desc, IF(postings.category IS NOT NULL, postings.category, job_categories | 
| 709550 | root        | localhost          | v3   | Query   |      0 | NULL                             | show processlist                                                                                     | 
| 710084 | irnadmin    | 172.19.0.27:53285  | NULL | Query   |      0 | removing tmp table               | show status where Variable_name='Threads_running'                                                    | 
+--------+-------------+--------------------+------+---------+--------+----------------------------------+------------------------------------------------------------------------------------------------------+
49 rows in set (0.00 sec)

3
เพื่อนคุณให้อีเมลของ caroline *********** ในตัวอย่างรหัสของคุณด้านบน
Leon Waldman

คำตอบ:


334

SQL เวอร์ชันใหม่กว่าสนับสนุนรายการกระบวนการใน information_schema:

SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST

คุณสามารถสั่งซื้อได้ตามที่คุณต้องการ

ตาราง Information_SCHEMA.PROCESSLIST ถูกเพิ่มใน MySQL 5.1.7 คุณสามารถค้นหาเวอร์ชันที่คุณใช้กับ:

SELECT VERSION()

ก็เพื่อให้มีความสุข แต่ก็เช่นเดียวกับshow full processlistการพูดการINFOเป็นส่วนหนึ่งที่สมบูรณ์จะมีเวอร์ชั่นสั้นหรือบางทีฉันจำเป็นต้องใช้ substr?
OMG

@Shore: คุณต้องการที่จะทำ substr?
codersofthedark

56

คำสั่ง

show full processlist

สามารถถูกแทนที่ด้วย:

SELECT * FROM information_schema.processlist

แต่ถ้าคุณไปกับรุ่นหลังคุณสามารถเพิ่มWHEREข้อ:

SELECT * FROM information_schema.processlist WHERE `INFO` LIKE 'SELECT %';

สำหรับข้อมูลเพิ่มเติมโปรดเยี่ยมชมนี้


7

เครื่องมือที่มีประโยชน์อีกอันสำหรับสิ่งนี้จากอินเตอร์เฟสบรรทัดคำสั่งคือคำสั่ง pager

เช่น

pager grep -v Sleep | more; show full processlist;

จากนั้นคุณสามารถเลื่อนดูผลลัพธ์

นอกจากนี้คุณยังสามารถค้นหาผู้ใช้บางราย IP หรือคิวรีที่มี grep หรือ sed ด้วยวิธีนี้

คำสั่ง pager จะคงอยู่ต่อเซสชัน


3

คุณสามารถจับเอาท์พุทและส่งผ่านตัวกรองได้ดังนี้:

mysql show processlist
    | grep -v '^\+\-\-'
    | grep -v '^| Id'
    | sort -n -k12

greps ทั้งสองดึงแถบส่วนหัวและส่วนท้ายออก (อาจจำเป็นต้องใช้อีกหากมีบรรทัดอื่นที่ไม่มีข้อมูลที่เป็นประโยชน์) และการเรียงลำดับจะดำเนินการตามหมายเลขเขตข้อมูลตัวเลข 12 (ฉันคิดว่าถูกต้อง)

อันนี้ใช้ได้ผลทันทีของคุณ:

mysql show processlist
    | grep -v '^\+\-\-'
    | grep -v '^| Id'
    | grep -v  '^[0-9][0-9]* rows in set '
    | grep -v '^ '
    | sort -n -k12

5
คุณไม่จำเป็นต้องโทรติดต่อกันgrepสี่ครั้ง เพียงแค่ใช้sedเช่น: sed '/^\+\-\-/d; /^| Id/d; /^[0-9][0-9]* rows in set '/d; /^ /d;สิ่งนี้จะทำการโทรหนึ่งครั้งไปยังโปรแกรมหนึ่ง (ไม่ใช่สี่โปรแกรม) และมันก็เร็วขึ้นสะอาดขึ้นง่ายขึ้นและทำงานได้เร็วขึ้นเช่นกัน
เหม่ย

2
คุณไม่จำเป็นต้องมี แต่คุณสามารถทำได้ ถ้ามันเป็นสิ่งที่คุณต้องการทำหลาย ๆ ครั้งต่อวินาทีใช่ต้องกังวลเกี่ยวกับประสิทธิภาพ มิฉะนั้นจะไม่ใช่ปัญหาโดยเฉพาะขนาดของชุดข้อมูล
paxdiablo


1

... เรายังไม่มี MySQL เวอร์ชั่นใหม่กว่าดังนั้นฉันสามารถทำได้ (ใช้งานได้กับ UNIX เท่านั้น):

 host=maindb

 echo "show full processlist\G" | mysql -h$host | grep -B 6 -A 1 Locked

ด้านบนจะทำการค้นหาเซสชันที่ถูกล็อคทั้งหมดและส่งคืนข้อมูลและ SQL ที่เกี่ยวข้อง

... ดังนั้นสมมติว่าคุณต้องการค้นหาเซสชันที่กำลังนอนหลับ:

  host=maindb

  echo "show full processlist\G" | mysql -h$host | grep -B 6 -A 1 Sleep

หรือสมมติว่าคุณต้องการให้พารามิเตอร์การเชื่อมต่อเพิ่มเติมสำหรับ MySQL:

  host=maindb

  user=me

  password=mycoolpassword 

  echo "show full processlist\G" | mysql -h$host -u$user -p$password | grep -B 6 -A 1 Locked

ด้วยการปรับแต่งสองสามครั้งฉันแน่ใจว่าเชลล์สคริปต์สามารถสร้างขึ้นได้อย่างง่ายดายเพื่อค้นหารายการกระบวนการตามที่คุณต้องการ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.