什么更快? SQL 数据库 read/write 或文件 read/write?

What is faster? SQL database read/write or file read/write?

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

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

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

文件比数据库更高效。 DB 是一个基于文件系统的软件,但如果你有效地通过文件实现你的解决方案,它会更快并且没有 Db 的过载。 同样在 DB 中,如果您使用 ORM (JPA),它会使代码比纯 JDBC 更慢。很明显,数据处理(file->JDBC->JPA)越方便,越费时。

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

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

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