2011-04-20 84 views
6

我目前正在测试一些不同的关系数据库管理系统。 (MySQL,PostgreSQL,Oracle和Firebird SQL)使用Java应用程序来执行此操作。性能测试各种数据库

我在辩论我应该运行什么测试来区分每个的性能。

明显的将是insert,select,deletedrop

我很想听听你的意见,并使其适用于问题答案的格式,我会要求5个最合适的测试来表明性能差异。在理想的世界中,我想模仿真实的文字使用。

感谢所有回答。

+0

感谢Lwburk的整洁。 – 2011-04-20 20:22:04

回答

3

我认为他们中的任何一个都可能会很好。但是,根据您的应用程序,您尝试执行的不同数据库配置会有所不同。

建议的地方开始:寻找类似于你的应用程序。如果可以的话,看看他们在用什么。然后开始测试具有类似配置的不同数据库,并查看哪些适合您。

就我个人而言,我在过去的11年中使用过Oracle,MySql和Postgres,并且它们都运行良好。这完全在您的配置中,这是一个好的DBA派上用场的地方。

+0

嗨艾伦,应用程序的目的是应用测试。应用程序只需创建一个连接,然后通过用户输入操作数据库,并在用户界面中输出任何reuslts。谢谢您的意见。事实上,我感谢大家的意见,这将有助于我建立预期的结果。我正在测试RDBMS,其中运行的应用程序在不同的服务器上运行不同的O.S和RDBMS。再次感谢! – 2011-04-20 20:11:37

+0

好的,在这种情况下,然后设置你想要执行的测试的基线。我会说,一般来说,任何写入的内容都需要比读取内容更多的资源。所以使用一些插入和更新查询。然后使用一些选择。这些可以批量运行,可能会循环。一旦建立基线,重要的是在每个数据库上运行同一组查询。并确保每个数据库上的配置尽可能接近等效,以产生有效的结果。 – 2011-04-20 20:55:18

+0

这正是我正在寻找谢谢的那种输入!下面的几个链接应该可以帮助我建立一些适当的测试。再次感谢! – 2011-04-20 21:01:11

1

测试并发性。换句话说,在各种锁定情况下会发生什么?理想情况下,您希望尽可能接近真实世界的条件下进行测试,多个用户正在使用该系统。请参阅我对this SO question的回答。

+0

我很感激你花时间。 – 2011-04-20 20:23:33

2

以下是JPA提供程序和RDBMS的fairly extensive benchmarks的结果。您可以使用它们提供的数据,也可以使用download their code并自行运行。

+0

谢谢你的时间。我相信这一定会帮助我以更合适的方式来组织我的发现。 – 2011-04-20 20:23:03

+0

@ user671430 - 很高兴您觉得此信息有用。如果您认为能够充分解决您的问题,请随时“接受”我的回答。 – 2011-04-20 20:25:10