कैसे 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****@****.com का ईमेल दें।
लियोन वाल्डमैन

जवाबों:


333

SQL के नए संस्करण, सूचना सूची में प्रक्रिया सूची का समर्थन करते हैं:

SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST

आप किसी भी तरह से पसंद कर सकते हैं।

MySQL 5.1.7 में INFORMATION_SCHEMA.PROCESSLIST तालिका जोड़ी गई थी। आप यह जान सकते हैं कि आप किस संस्करण का उपयोग कर रहे हैं:

SELECT VERSION()

यह बहुत अच्छा है, लेकिन यह वैसा ही है show full processlist, जैसे कि, INFOभाग पूरा हो गया है, क्या इसका कोई छोटा संस्करण है? या शायद मुझे रूट का उपयोग करने की आवश्यकता है
omg

@ शोर: यू आर रूट करना चाहते हैं?
कोडरफॉथेडार्क

56

आदेश

show full processlist

द्वारा प्रतिस्थापित किया जा सकता है:

SELECT * FROM information_schema.processlist

लेकिन अगर आप बाद वाले संस्करण के साथ जाते हैं, तो आप WHEREइसमें क्लॉज़ जोड़ सकते हैं :

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

अधिक जानकारी के लिए इस पर जाएँ


7

कमांड लाइन इंटरफ़ेस से इसके लिए एक और उपयोगी उपकरण, पेजर कमांड है।

जैसे

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

फिर आप परिणामों के माध्यम से पेज कर सकते हैं।

आप इस तरह से कुछ उपयोगकर्ताओं, IPs या grep या sed के साथ क्वेरी भी देख सकते हैं।

पेजर कमांड प्रति सत्र लगातार है।


3

आप बस आउटपुट को कैप्चर कर सकते हैं और इसे एक फिल्टर के माध्यम से पास कर सकते हैं, जैसे कुछ:

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

हेडर और ट्रेलर लाइनों के बाहर दो ग्रीप्स पट्टी (अन्य की आवश्यकता हो सकती है यदि अन्य लाइनें हैं जिनमें उपयोगी जानकारी नहीं है) और क्रम संख्या 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
आप नहीं, नहीं, लेकिन आप कर सकते हैं की जरूरत नहीं है। यदि यह उस तरह की चीज है जिसे आप प्रति सेकंड कई बार करना चाहते हैं, तो हां, प्रदर्शन के बारे में चिंता करें। अन्यथा यह एक गैर-मुद्दा है, विशेष रूप से डेटा सेट का आकार।
पैक्सडीब्लो

2

यदि आप MySQL के पुराने संस्करण का उपयोग करते हैं, तो आप हमेशा awk कोड के कुछ अच्छे टुकड़े के साथ संयुक्त \ P का उपयोग कर सकते हैं। दिलचस्प उदाहरण यहाँ

http://www.dbasquare.com/2012/03/28/how-to-work-with-a-long-process-list-in-mysql/

क्या यह ठीक है कि आपको क्या चाहिए?


1

... हमारे पास अभी तक MySQL का नया संस्करण नहीं है, इसलिए मैं ऐसा करने में सक्षम था (केवल UNIX पर काम करता है)

 host=maindb

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

उपरोक्त सभी बंद सत्रों के लिए क्वेरी करेगा, और इसमें शामिल जानकारी और एसक्यूएल को लौटाएगा।

... तो- मान लें कि आप सो रहे सत्रों के लिए क्वेरी करना चाहते थे:

  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

दोहों के साथ, मुझे यकीन है कि जिस तरह से आप चाहते हैं, उस प्रक्रिया को क्वेरी करने के लिए एक शेल स्क्रिप्ट आसानी से बनाई जा सकती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.