測量MySQL的表達式和函數的速度,能夠調用benchmark()函數。語法格式是benchmark(loop_count,expr)。運行的返回值是0,可是mysql會打印一行顯示語句大概要執行多長的時間。mysql
mysql> SELECT BENCHMARK(1000000,1+1); +------------------------+ | BENCHMARK(1000000,1+1) | +------------------------+ | 0 | +------------------------+ 1 row in set (0.06 sec) mysql>
這裏的結果顯示,MySQL執行1000000次簡單的加法須要花費0.06秒。sql
內置的MySQL函數一般是高度優化的,但可能有一些例外。BENCHMARK()是一個很好的工具,能夠找出某些函數是不是你的查詢的問題。
報告的時間是客戶端的已用時間,而不是服務器端的CPU時間。建議屢次執行BENCHMARK(),並根據服務器機器的負載程度來解釋結果。服務器
經過模擬N次隨機業務邏輯判斷響應耗時函數
mysql> select benchmark(100000000, 'call mysp()'); +-------------------------------------+ | benchmark(100000000, 'call mysp()') | +-------------------------------------+ | 0 | +-------------------------------------+ 1 row in set (0.49 sec) mysql>