如何衡量数据库性能?

时间:2009-08-20 13:33:56

标签: php mysql database performance firebug

我正在开发一个Web应用程序,它将访问和处理MySQL数据库中的大量数据,类似字典/词库。我需要测试数据库的大小增加时的性能,所以我知道将来每个请求的速度有多慢。

有什么想法吗?就像是否有特定工具来检查特定查询的DB性能等?

3 个答案:

答案 0 :(得分:4)

你知道吗,特别是你正在测试?测量“性能”是almsot总是无用的,除非你确切知道它是什么。

例如,您是否在寻找查询结果检索的低延迟?也许日期检索的吞吐量很高?也许您更关心快速插入数据库,而不是快速查询结果?也许你关心不同表上的不同事物(事实上,几乎总是如此)。

我的建议可能会被忽略,但无论如何我都会说:

在您知道自己想要的内容之前不要进行优化。

在编写代码时不要进行优化。

当您开始优化数据库时,请确保针对正确的事情进行优化。使用实际数据 - 如果您正在测试字典大小的文本,请不要使用二进制数据进行测试(例如)。

无论如何,我意识到你可能正在寻找更技术性的答案,但是嘿......

答案 1 :(得分:3)

您可以使用Maatkitquery profiler来衡量数据量对MySQL效果的影响。

generatedata.com生成测试应用所需的数据。

您还可以使用HTTP测试工具测试应用程序响应性,如:

答案 2 :(得分:1)

一个好用的工具是apache的ab,它是apache httpd服务器的标准配置。此工具可以与Web服务器建立多个连接并对其性能进行基准测试。虽然firebug是一个很好的方式来查看事物的顺序,每个项目加载的时间等等,但您只能看到一个用户的体验。对于卸载的测试服务器,该信息只能带你到目前为止。 ab模拟多个用户连接,并将更真实地描述特定页面如何处理并发用户。

这导致了我在ab中的限制:它只测试一个URL。我经常通过制作一个简单的测试网页来解决这个问题,该网页从我想要测试的预定义URL列表中随机选择。例如:登录页面,搜索结果,发布评论等。 ab命中测试页面,测试页面只调用其中一个测试URL(可能带有随机参数)并返回该页面。通过这种方式,您可以更好地了解整个站点如何处理并发用户。

PS:你的操作系统无法通行。您必须根据应用程序的编写方式,数据布局,Web服务器配置和数据库服务器等来自行解决。

相关问题