1

我正在寻找一种衡量 Java 中特定数据库性能并将它们相互比较的好方法。这些数据库是:(NoSQL)MongoDB、CouchDB 和 Cassandra 以及(RDBMS)MySQL、Postgresql。

我打算做一些 CRUD 测试和一些更复杂的连接/关系测试。我想过使用 JMH(Java Microbenchmarking Harness),但我不知道这是否是个好主意,因为它正在测量 ops/s(每秒操作数)。有人对用 Java 衡量这些数据库的性能有什么好的建议吗?还是使用 JMH 实际上是一个不错的选择?

4

2 回答 2

2

JMH 在 Java 中是一个不错的选择。它可以测量延迟和吞吐量。

如果您需要测量并发访问,您可以编写自己的。由于您在 TCP 上有很长的延迟任务,因此细粒度的准确性可能并不那么重要。

您可能想查看 Yahoo Cloud Services Benchmark,因为它有许多数据库的适配器。

于 2015-02-26T20:20:55.907 回答
0

我做了一些与您正在寻找的非常相似的事情。我有一个使用 Redis、Cassandra、Solr 和(基于配置)MySql 或 PostGreSql 的开源新闻提要微服务。此服务显示一个 RESTful 接口,该接口提供对参与者、朋友、出站和入站帖子的 CRUD 样式访问,并将每个请求的持续时间发布到 Kafka。还有一个运行此服务的负载测试应用程序。另一个应用程序使用这些 Kafka 消息并计算每分钟吞吐量、平均值、中位数和第 95 个百分位数,并使用该信息更新 Elastic Search。我进行了反复试验,在 AWS 中站起来了整个事情。一次运行将使用 MySql,然后下一次将使用 PostGreSql。这是唯一的区别。然后我比较了性能数据。

查看MySql vs PostGreSql vs Docker的测试结果和我的github repo的所有源代码。

于 2016-03-29T17:54:00.503 回答