java - MemSQL 与 H2 对比

标签 java database h2 singlestore

我正在考虑从 H2 迁移到 MemSQL - 如果有任何意见,我将不胜感激:

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

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

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

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

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

有人用 H2 比较过 MemSQL 的性能吗? - 我在现实世界的测试中没有发现任何在线内容。

最佳答案

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

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

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

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

关于java - MemSQL 与 H2 对比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17498121/

相关文章:

java - 从 SQLite 加载数据

java - Spring-Boot 兼容内存数据库,支持字符串数组(String[])数据类型

java - 如何从 File 实例获取 Class<?> 实例而不诉诸字符串

Java 构造函数变量被忽略

java - 匹配测试下方法内部创建的 HttpGet 对象

hibernate - 在内存数据库(HSQLDB或H2)上使用多个架构域运行grails

java - 无法从 H2 数据库获得结果

java - MySQL 客户端与服务器时区

c# - 从 mySQL 数据库中提取记录仅适用于用户 ID,不适用于电子邮件

sql - 如何使包装器返回 ref cursor 以外的东西