是否值得尝试MonetDB?

时间:2011-09-15 17:48:22

标签: database column-oriented monetdb

有没有人有使用MonetDB的经验?目前,我的MySQL数据库越来越大,查询速度太慢。根据面向列的范例,插入将更慢(我根本不介意),但数据检索变得非常快。通过切换到MonetDB,我是否有机会获得更多的数据检索性能? MonetDB足够成熟吗?

2 个答案:

答案 0 :(得分:17)

您有机会提高应用程序的性能。但是,收益很大程度上取决于您的工作负载,数据库大小和硬件。 MonetDB是根据两个主要假设开发/调整的:

  1. 您的工作量是分析性的,即您有许多(分组)聚合等。
  2. 更重要的是:您的热门数据集(您实际使用的数据)适合您系统的主内存。 MonetDB没有自己的缓冲区管理器,但依靠操作系统来处理磁盘I / O.由于操作系统(特别是Windows,但Linux也是如此)有时非常愚蠢,因为磁盘交换可能会成为一个问题(特别是对于内存不足的连接)。
  3. 至于成熟度,可能比居住在这个星球上的人更多的意见。就个人而言,我发现它已经足够成熟,但我是开发团队的成员,因此有偏见。但MonetDB是一个研究项目,所以如果你有一个有趣的应用程序,我们很乐意听到它,看看我们是否可以提供帮助。

答案 1 :(得分:4)

答案当然取决于你的有效载荷,但到目前为止,我的经验似乎表明MonetDB中的一切都比我在MySQL中看到的要快。例外是连接,它不仅看起来很慢,而且在流水线方面似乎完全无能为力,所以你最终需要大量内存来处理大型内存。这说我在MySQL中加入的经验也不是很好,所以我猜你的期望可能很低。如果你真的想要很好的连接性能,我可能会推荐SQL Server等;对于你在后续评论中提到的其他问题,MonetDB应该很棒。

例如,给定一个包含大约200万行的表,我能够在一列(范围内约有800K行)中排序,并按另一列排序,并且处理并返回有限的结果为25ms。这些类型的查询的性能似乎确实随着规模而降低,但这应该让您体验到您在该规模上可能期望的内容。

我应该提醒一下,乐观并发模型可能会抛弃那些只暴露于悲观并发的人(大多数人)。我想知道为什么你的一些提交会在并发负载下失败。