Mysql

mysql查詢執行時間

  • December 9, 2019

當我執行查詢時,我在 mysql 中執行了大約 3300 萬條記錄的查詢

  • 從城市中選擇人口1 < 200000;執行後顯示如下

集合中的 34459393 行(16.04 秒)

我的問題是什麼是 16.04 秒,因為在正常情況下它花費了 30 多分鐘,但它顯示 16.04 秒。我如何計算實際時間。

16.04 秒是客戶端上的一個計時器,用於測量呼叫和執行查詢之間經過的時間量(如果你想更具體一點,呼叫start_timer()mysql_end_timer()之間的掛鐘時間,可能會導致像我這樣的搞笑結果)。

您認為執行時間超過 30 分鐘的原因可能是因為它沒有考慮到標準輸出的輸出。您可以通過以下方式檢查它是否真的需要 16 秒:

mysql&gt; pager cat &gt; /dev/null 
mysql&gt; &lt;your query here&gt;
mysql&gt; nopager

如果要測量寫入標準輸出所需的時間,可以執行以下操作:

$ time mysql -u &lt;your user&gt; -p&lt;your password&gt; &lt;your database&gt; \
 -e "select population1 &lt; 200000 from city"

注意:您確定要為該表中的所有行列印 0 或 1 嗎?也許選項--safe-updates和/或使用 GUI 可以幫助您解決查詢?

當您在 MySQL Workbench 中執行查詢時,您實際上會在操作輸出視窗中獲得 2 次。標題還顯示了它們的用途:

在此處輸入圖像描述

伺服器上的執行時間(可能是您的〜16s)和通常更大的獲取時間,以將數據從伺服器傳輸到客戶端。擁有數百萬條記錄,很容易花費幾分鐘或更長時間。

引用自:https://dba.stackexchange.com/questions/72027