值得尝试 MonetDB 吗?

发布于 2024-12-04 23:02:08 字数 134 浏览 1 评论 0原文

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

Has anyone had any experience with MonetDB? Currently, I have a MySQL database that is growing too large, and queries are getting too slow. According to column-oriented paradigm, insertions will be slower (which I don't mind at all), but data retrieval becomes very fast. Do I stand a chance of getting more data retrieval performance just by switching to MonetDB? Is it MonetDB mature enough?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

昇り龍 2024-12-11 23:02:08

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

  1. 您的工作负载是分析性的,即您有很多(分组的)聚合等。
  2. 更重要的是:您的热数据集(您实际使用的数据)适合系统的主内存。 MonetDB 没有自己的缓冲区管理器,而是依赖操作系统来处理磁盘 I/O。由于操作系统(尤其是 Windows,但 Linux 也一样)有时对于磁盘交换非常愚蠢,这可能会成为一个问题(特别是对于内存不足的连接)。

至于成熟度,可能比居住在这个星球上的人有更多的意见。就我个人而言,我发现它足够成熟,但我是开发团队的成员,因此有偏见。但 MonetDB 是一个研究项目,因此如果您有一个有趣的应用程序,我们很乐意了解它并看看我们是否可以提供帮助。

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.

看轻我的陪伴 2024-12-11 23:02:08

答案当然取决于您的有效负载,但迄今为止我的经验似乎表明 MonetDB 中的所有内容都比我在 MySQL 中看到的要快。例外情况是连接,它不仅看起来很慢,而且在管道操作方面似乎完全无能,因此您最终需要大量内存来处理大数据。也就是说,我在 MySQL 中的连接方面的经验也不是很出色,所以我猜您的期望可能很低。如果你真的想要良好的连接性能,我可能会推荐 SQL Server 等;对于您在后续评论中提到的其他查询,MonetDB 应该很棒。

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

我应该提醒大家,乐观并发模型可能会抛弃那些只接触过悲观并发模型的人(大多数人)。在想知道为什么某些提交在并发负载下失败之前,我会先研究一下。

The answer of course depends on your payload but my experience so far would seem to indicate that about everything is faster in MonetDB than I've seen in MySQL. The exception would be joins, which not only seem slow, but seem completely inept at pipelining so you end up needing gobs of memory to process large ones. That said my experience with joins in MySQL hasn't exactly been stellar either, so I'm guessing your expectations may be low. If you really want good join performance, I'd probably recommend SQL Server or the like; for those other queries you mention in the follow up comments, MonetDB should be awesome.

For instance, given a table with about 2 million rows in it, I was able to range on one column (wherin there were about 800K rows in the range) and order by another column and the limited result was processed and returned in 25ms. Performance of those type of queries does seem to degrade with scale, but that should give you a taste for what you might expect at that scale.

I should caution that the optimistic concurrency model might throw off those that have only been exposed to pessimistic concurrency (most people). I'd research it before wondering why some of your commits fail under concurrent load.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文