說明
MySQL有一個內置的BENCHMARK()函數,可以測試某些特定操作的執行速度。
參數可以是需要執行的次數和表達式。
表達式可以是任何的標量表達式,比如返回值是標量的子查詢或者函數。
請注意:該函數只是簡單地返回服務器執行表達式的時間,而不會涉及分析和優化的開銷。
該函數可以很方便地測試某些特定操作的性能,比如通過測試可以發現,MD5()比SHA1()函數要快:
試驗結果
mysql> SET @input := “hello world”;
Query OK, 0 rows affected (0.00 sec)
mysql> select @input;
+————-+
| @input |
+————-+
| hello world |
+————-+
1 row in set (0.00 sec)
mysql> select @a;
+——+
| @a |
+——+
| NULL |
+——+
1 row in set (0.00 sec)
mysql> select BENCHMARK(10000000,MD5(@input));
+———————————+
| BENCHMARK(10000000,MD5(@input)) |
+———————————+
| 0 |
+———————————+
1 row in set (3.40 sec)
mysql> select BENCHMARK(10000000,SHA1(@input));
+———————————-+
| BENCHMARK(10000000,SHA1(@input)) |
+———————————-+
| 0 |
+———————————-+
1 row in set (6.19 sec)
mysql>
參考文獻
《高性能MySQL》