2011-01-19 82 views
27

在文獻中,SQL查詢效率通常在「查詢預先計劃」(QPS)中進行測量。考慮到我有一個包含生產數據的數據庫,我如何採取這些措施?有沒有一個MySQL工具可以做到這一點?如何衡量「每秒查詢次數」?

回答

18

要做到這一點,最簡單的方法是創建一個運行的工作:

SHOW STATUS 

在指定的時間間隔。這將返回「查詢」值。取出連續調用SHOW STATUS之間的差異,然後除以測量之間的秒數以獲得每秒的查詢次數。

6

如果您在Linux上,可以使用名爲MyTop的工具進行實時分析。

51
# mysqladmin status 

Uptime: 587 Threads: 121 Questions: 3456 Slow queries: 0 Opens: 152 Flush tables: 1 Open tables: 64 Queries per second avg: 5.888 
+0

是不是 「問題」 或 「查詢」,分母? – SOFe 2016-06-20 13:32:28

2

#服務mysql的狀態播放返回這些信息(基於中mysqladmin二進制):

[email protected]:~# service mysql status 
[info] /usr/bin/mysqladmin Ver 8.42 Distrib 5.5.44, for debian-linux-gnu on x86_64 
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. 

Oracle is a registered trademark of Oracle Corporation and/or its 
affiliates. Other names may be trademarks of their respective 
owners. 

Server version   5.5.44-0+deb7u1 
Protocol version  10 
Connection    Localhost via UNIX socket 
UNIX socket    /var/run/mysqld/mysqld.sock 
Uptime:     1 day 6 hours 36 min 1 sec 

Threads: 2 Questions: 332928 Slow queries: 0 Opens: 104 Flush tables: 1 Open tables: 59 Queries per second avg: 3.022. 
+0

不是在每個發行版中,也不是在使用systemd時。你看到的實際上是`mysqladmin status`的輸出。 – istepaniuk 2018-01-16 10:36:03