MemSQL 和 H2 比较

Posted

技术标签:

【中文标题】MemSQL 和 H2 比较【英文标题】:MemSQL and H2 comparison 【发布时间】:2013-07-05 23:34:32 【问题描述】:

我正在考虑从 H2 迁移到 MemSQL - 我将非常感谢任何 cmets:

我的应用程序必须非常快速地同时从多达 3 亿行的大型表中进行查询。为此,我一直在使用 H2 内存数据库。

我目前正在使用 H2 数据库,它允许我在 H2 内存数据库中创建指向 mysql 数据库的链接表。这对于将数据从 MySQL 加载到 H2 非常有用。

我可以在 MemSQL 中创建链接表吗 - 我在在线 MemSQL 文档中没有看到对此的引用?

另一个挑战是我需要在许多服务器上运行应用程序的多个实例,因此让 MemSQL 分布在服务器上运行非常有吸引力,而不是必须在服务器上的应用程序的每个 JVM 实例中复制 H2 数据库。通过 TCP 向其他服务器运行一个 H2 实例将太慢。

我看到的 MemSQL 的另一个优点是显然没有锁定,并且查询被编译成本机 C++,这可以加快它们的速度。

有没有人将 MemSQL 的性能与 H2 进行比较? - 我在真实世界的测试中没有在线发现任何东西。

【问题讨论】:

【参考方案1】:

Mark L 来自 MemSQL。我想解决您的一些问题,并在获取您所询问的信息/基准方面提供额外帮助。

MemSQL 确实通过 JDBC 连接器支持链接表 - 在实践中,它与 MySQL 一样工作 - 所以你不会有任何问题让它工作。在分布式模式下运行 MemSQL 确实会提供很大的性能优势,您会看到吞吐量和延迟方面的一些重大改进。我没有直接发现 H2 和 MemSQL 之间的直接比较 - 但是,您可以通过查看 MemSQL 与 MySQL 的比较得出一些间接结论,因为我们从网站上获得了 H2 与 MySQL 的比较数据。根据我们的现场经验,我希望您在使用 MemSQL 时能够观察到显着的性能提升。

总体而言,有几点观察:在 MemSQL 分布式版本中,您将拥有 H2 无法获得的几个优势:由于无锁索引、完整的 MVCC(H2 只能在单一-框),并且数据的自动分片是亮点之一。在所有功能中,自动分片对于您的用例来说可能是最重要的——H2 无法自动分片数据,即使两者的速度相等,在分布式时拥有这种能力显然是一个很大的优势.正如我所提到的,尽管使用 MemSQL 分布式会更快,并且与 H2 的多个实例相比更易于管理。

无论如何,我们都非常乐意帮助您证明这一点!请随时通过 memsql dot com 上的 larosa 电子邮件与我联系。

【讨论】:

以上是关于MemSQL 和 H2 比较的主要内容,如果未能解决你的问题,请参考以下文章

memsql 6.7集群安装

如何使用 jpa 执行本机 memsql 查询 [重复]

如何将 memsql 用于组合多个表的报告

Django-Memsql 初始迁移错误

MemSQL 取代 HDFS 与 Spark 结合,性能大幅提升

MemSQL 为 10MB 数据占用 15GB 内存