8

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

4

2 回答 2

18

You have a chance of improving the performance of your application. The gain is, however, largely dependent on your workload, the size of your database and your hardware. MonetDB is developed/tuned under two main assumptions:

  1. Your workload is analytical, i.e., you have lots of (grouped) aggregations and the like.
  2. Even more important: your hot dataset (the data that you actually work with) fits into the main memory of your system. MonetDB does not have it's own Buffer Manager but relies on the OS to handle disk I/O. Since the OS (especially windows but Linux too) is sometimes very dumb about disk swapping that may become a problem (especially for joins that run out of memory).

As for the maturity, there are probably more opinions on that than people inhabiting this planet. Personally, I find it mature enough but I am a member of the development team and, thus, biased. But MonetDB is a research project so if you have an interesting application we'd love to hear about it and see if we can help.

于 2011-09-16T10:34:56.900 回答
4

答案当然取决于您的有效负载,但到目前为止,我的经验似乎表明 MonetDB 中的一切都比我在 MySQL 中看到的要快。连接是个例外,它不仅看起来很慢,而且似乎完全不擅长流水线操作,因此您最终需要大量内存来处理大内存。也就是说,我在 MySQL 中的 join 经验也不是很出色,所以我猜你的期望可能很低。如果你真的想要好的连接性能,我可能会推荐 SQL Server 之类的;对于您在后续评论中提到的其他查询,MonetDB 应该很棒。

例如,给定一个包含大约 200 万行的表,我能够在一列上进行范围(范围内大约有 800K 行)并按另一列排序,有限的结果在 25 毫秒内得到处理和返回。这些类型的查询的性能似乎会随着规模的扩大而下降,但这应该让您了解在该规模下您可能会期望什么。

我应该提醒的是,乐观并发模型可能会抛弃那些只暴露于悲观并发(大多数人)的模型。在想知道为什么您的某些提交在并发负载下失败之前,我会对其进行研究。

于 2012-06-02T06:22:07.797 回答