MySQL有一个内置的BENCHMARK()函数,可以测试某些特定操作的执行速度。参数可以是需要执行的次数和表达式。通过另外两个函数,MD5()函数比SHA1()函数比较执行速度:
mysql> set @input :="hello world"; Query OK, 0 rows affected (0.00 sec) mysql> select benchmark(1000000,MD5(@input)); +--------------------------------+ | benchmark(1000000,MD5(@input)) | +--------------------------------+ | 0 | +--------------------------------+ 1 row in set (0.27 sec) mysql> select benchmark(1000000,SHA1(@input)); +---------------------------------+ | benchmark(1000000,SHA1(@input)) | +---------------------------------+ | 0 | +---------------------------------+ 1 row in set (0.66 sec)
执行后的返回值永远是0,但可以通过客户端返回的时间来判断执行的时间。在这个例子中可以看到MD5()执行比SHA1()要快。使用BENCHMARK()函数来测试性能,需要清楚地知道其原理,否则容易误用。
BENCHMARK()函数测试结果比较单一,不适合用来做真实环境下的基准测试