测量 MySQL 的表达式和函数的速度, 可以调用 benchmark() 函数. 语法格式是 benchmark(loop_count,expr). 运行的返回值是 0, 但是 MySQL 会打印一行显示语句大概要执行多长的时间.
- MySQL> SELECT BENCHMARK(1000000,1+1);
- +------------------------+
- | BENCHMARK(1000000,1+1) |
- +------------------------+
- | 0 |
- +------------------------+
- 1 row in set (0.06 sec)
- MySQL>
这里的结果显示, MySQL 执行 1000000 次简单的加法需要花费 0.06 秒.
内置的 MySQL 函数通常是高度优化的, 但可能有一些例外. BENCHMARK() 是一个很好的工具, 可以找出某些函数是否是你的查询的问题.
报告的时间是客户端的已用时间, 而不是服务器端的 CPU 时间. 建议多次执行 BENCHMARK(), 并根据服务器机器的负载程度来解释结果.
通过模拟 N 次随机业务逻辑判断响应耗时
- MySQL> select benchmark(100000000, 'call mysp()');
- +-------------------------------------+
- | benchmark(100000000, 'call mysp()') |
- +-------------------------------------+
- | 0 |
- +-------------------------------------+
- 1 row in set (0.49 sec)
- MySQL>
来源: http://www.bubuko.com/infodetail-3200049.html