Mysql
mysql查詢執行時間
當我執行查詢時,我在 mysql 中執行了大約 3300 萬條記錄的查詢
- 從城市中選擇人口1 < 200000;執行後顯示如下
集合中的 34459393 行(16.04 秒)
我的問題是什麼是 16.04 秒,因為在正常情況下它花費了 30 多分鐘,但它顯示 16.04 秒。我如何計算實際時間。
16.04 秒是客戶端上的一個計時器,用於測量呼叫和執行查詢之間經過的時間量(如果你想更具體一點,呼叫start_timer()和mysql_end_timer()之間的掛鐘時間,可能會導致像我這樣的搞笑結果)。
您認為執行時間超過 30 分鐘的原因可能是因為它沒有考慮到標準輸出的輸出。您可以通過以下方式檢查它是否真的需要 16 秒:
mysql> pager cat > /dev/null mysql> <your query here> mysql> nopager
如果要測量寫入標準輸出所需的時間,可以執行以下操作:
$ time mysql -u <your user> -p<your password> <your database> \ -e "select population1 < 200000 from city"
注意:您確定要為該表中的所有行列印 0 或 1 嗎?也許選項
--safe-updates
和/或使用 GUI 可以幫助您解決查詢?
當您在 MySQL Workbench 中執行查詢時,您實際上會在操作輸出視窗中獲得 2 次。標題還顯示了它們的用途:
伺服器上的執行時間(可能是您的〜16s)和通常更大的獲取時間,以將數據從伺服器傳輸到客戶端。擁有數百萬條記錄,很容易花費幾分鐘或更長時間。