mysql'de `` işlem listesini göster '' nasıl özelleştirilir?


184

Zamana göre sipariş vermek istiyorum, ama bunu yapmanın bir yolu yok mu?

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
Dostum, yukarıdaki kod örneğinizde caroline****@****.com e-postasına izin verdiniz.
Leon Waldman

Yanıtlar:


334

SQL'in daha yeni sürümleri, information_schema'daki işlem listesini destekler:

SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST

İstediğiniz şekilde SİPARİŞ VERİNİZ.

BİLGİ_SCHEMA.PROCESSLIST tablosu MySQL 5.1.7'de eklendi. Hangi sürümü kullandığınızı öğrenebilirsiniz:

SELECT VERSION()

Bu güzel yani, ama aynı şey show full processlist, diyelim ki, INFO? Kısa bir sürümü var Veya belki de kullanım substr gerekir kısmı tamamlandıktan
OMG

@ Sahil: Nerede substr yapmak istiyorsun?
codersofthedark

56

Komuta

show full processlist

ile değiştirilebilir:

SELECT * FROM information_schema.processlist

ancak ikinci sürümle devam ederseniz buna WHEREyan tümce ekleyebilirsiniz :

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

Daha fazla bilgi için burayı ziyaret edin


7

Bunun için komut satırı arabiriminden bir başka yararlı araç, pager komutudur.

Örneğin

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

Daha sonra sonuçlar arasında sayfa gezinebilirsiniz.

Ayrıca grep veya sed ile belirli kullanıcıları, IP'leri veya sorguları bu şekilde arayabilirsiniz.

Pager komutu oturum başına kalıcıdır.


3

Çıkışı yakalayabilir ve bir filtreden geçirebilirsiniz, örneğin:

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

İki greps, başlık ve römork çizgilerini çıkarır (yararlı bilgiler içermeyen başka çizgiler varsa diğerleri gerekebilir) ve sıralama, sayısal alan numarası 12'ye göre yapılır (doğru olduğunu düşünüyorum).

Bu, doğrudan çıktınız için çalışır:

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

5
grepArka arkaya dört kez aramanıza gerek yoktur ; sadece şu şekilde kullanın sed: sed '/^\+\-\-/d; /^| Id/d; /^[0-9][0-9]* rows in set '/d; /^ /d;Bu, bir programa (dört değil) bir çağrı yapar ve daha hızlı, daha temiz, daha basittir ve daha hızlı çalışır.
Mei

2
Gerek yok, hayır, ama yapabilirsin. Saniyede birçok kez yapmak istediğiniz bir şeyse, evet, performanstan endişe edin. Aksi takdirde, özellikle veri kümesi boyutu göz önüne alındığında sorun olmaz.
paxdiablo


1

... Daha yeni bir MySQL sürümümüz yok, bu yüzden bunu yapabildim (sadece UNIX üzerinde çalışıyor):

 host=maindb

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

Yukarıdakiler, tüm kilitli oturumları sorgular ve ilgili bilgileri ve SQL'i döndürür.

... yani uyuyan oturumları sorgulamak istediğinizi varsayarsak:

  host=maindb

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

Veya, MySQL için ek bağlantı parametreleri sağlamanız gerektiğini varsayarsak:

  host=maindb

  user=me

  password=mycoolpassword 

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

Birkaç değişiklikle, işlem listesini istediğiniz şekilde sorgulamak için bir kabuk komut dosyasının kolayca oluşturulabileceğinden eminim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.