测量表达式和函数的速度
要测量特定MySQL表达式或函数的速度,请BENCHMARK()使用mysql客户端程序调用该函数。其语法为 。返回值始终为零,但是mysql 打印一行,显示大约执行该语句所花的时间。例如: BENCHMARK(loop_count,expr)
mysql> SELECT BENCHMARK(1000000,1+1);
+------------------------+
| BENCHMARK(1000000,1+1) |
+------------------------+
| 0 |
+------------------------+
1 row in set (0.32 sec)
该结果是在奔腾II 400MHz系统上获得的。它表明MySQL在该系统上可以在0.32秒内执行1,000,000个简单加法表达式。
内置的MySQL函数通常经过高度优化,但是可能会有一些例外。 BENCHMARK()是一个很好的工具,用于确定某些功能是否对您的查询有问题。
使用自己的基准
对您的应用程序和数据库进行基准测试,以找出瓶颈所在。在修复了一个瓶颈之后(或通过用“ 虚拟 ”模块替换它),您可以继续确定下一个瓶颈。即使您的应用程序的总体性能目前可以接受,您还是至少应该为每个瓶颈制定一个计划,并在有一天确实需要额外的性能时决定如何解决它。
仅当系统负载很重时才发生问题是很常见的。我们有许多客户在生产中(经过测试)系统并且遇到负载问题时与我们联系。在大多数情况下,性能问题可能是由于基本数据库设计问题(例如,表扫描在高负载下效果不佳)或操作系统或库问题引起的。在大多数情况下,如果系统尚未投入生产,这些问题将更容易解决。
为避免此类问题,请在可能的最坏负载下对整个应用程序进行基准测试:
该mysqlslap程序可以是用于模拟由多个客户端同时发出查询产生的高负载有帮助的。请参见第4.5.8节“ mysqlslap-负载仿真客户端”。
这些程序或软件包可以使系统崩溃,因此请确保仅在开发系统上使用它们。
使用performance_schema评估性能
您可以查询performance_schema数据库中的表 以查看有关服务器及其正在运行的应用程序的性能特征的实时信息