什么更快? SQL数据库读/写或文件读/写?

时间:2016-08-21 11:31:49

标签: java database performance file load-testing

我正在java中实现一个负载测试工具。我想暂时存储负载测试结果,以便与最终的预期结果相匹配。我在运行负载测试时无法匹配响应,因为它会影响负载测试速度。

所以我想在最短的写作时间内存储结果。存储数据的最佳方法是什么?写入本地数据库或将本地硬盘写入文件?

注意:结果不能保存在RAM中,因为结果可能很大。

2 个答案:

答案 0 :(得分:0)

文件比DB更有效。 DB是一个基于文件系统的软件,但如果您通过文件有效地实现您的解决方案,它将更快,并且没有Db的重载。 如果使用ORM(JPA),它也会在DB中使代码比纯JDBC更慢。很明显,数据处理(文件 - > JDBC-> JPA)的更多便利会导致更多的时间。

我建议您为此目的使用文件操作,并在java中使用一些更快速的技术,如nio(New IO)。

答案 1 :(得分:-1)

通过负载测试,通常的方法是让多个代理将负载放在系统上。然后需要对系统和代理进行一些基准测试。通常会分割负载,因此一个代理可以保留自己的统计信息。测试完成后,您可以汇总代理统计类型" off line"并将其与系统端的基准进行交叉比较。

回答有关I / O写入速度的问题:它取决于许多不同因素,因此您需要对两种方案进行基准测试。但是考虑到数据库需要支持事务,索引和存储数据的事实,我的盲目猜测是在用例文件中,原始数据会更快。