如何测试你的mysql查询?

时间:2012-01-02 08:44:13

标签: mysql testing load-testing

我为我的应用程序开发了一些mysql查询,并创建了索引并使用了EXPLAIN语句。

  • 我们可以使用哪些类型的测试方法来检查查询(性能测试,负载测试,并发测试等)

  • 如何在系统中使用这些测试方法,与查询测试相关的任何内容对我都有帮助。

提前致谢。

1 个答案:

答案 0 :(得分:7)

使用sysbench进行测试,它是模拟数据库流量的绝佳工具。此外,我建议熟悉MySQL EXPLAIN语句,因为它有助于剖析查询并改进慢速区域。

互联网上有很多文章解释了如何正确地进行基准测试,这里只有其中一篇http://20bits.com/articles/10-tips-for-optimizing-mysql-queries-that-dont-suck/

最后但并非最不重要的是,用真实数据进行测试是无可替代的。从理论上讲,某些查询应该比其他查询更好地处理,但唯一可靠的方法是通过使用实际数据测试您的模式。有一个名为generatedata的简洁工具可以创建大量虚拟数据,以便您可以执行所述测试。

为了正确地对您的查询进行基准测试,您必须确保擦除任何缓存的查询和数据库信息,以便结果时间准确且彼此独立;您可以在运行每个查询之前执行RESET QUERY CACHEFLUSH TABLES来执行此操作。

所要求的其他信息: 根据经验,处理并发性的最佳方法是使用MySQL SET TRANSACTION语句来正确隔离查询。通过使用InnoDB引擎,数据库将执行行锁定,这通常足以满足大多数应用程序的需要。您可以通过在数据库上执行等效任务但使用单独的事务来测试此操作。并发性是数据库领域中一个非常广泛的主题,我强烈建议您进一步研究这个主题。