我正在考虑从H2迁移到MemSQL - 我非常感谢任何评论:
我的应用程序必须从最多300万行的大表中同时快速查询。为此,我一直在使用H2内存数据库。
我目前正在使用H2数据库,它允许我在H2内存数据库中创建指向MySQL数据库的链接表。这在将数据从MySQL加载到H2时非常有用。
我可以在MemSQL中创建链接表 - 我在在线MemSQL文档中看不到对此的引用吗?
另一个挑战是我需要在许多服务器上运行多个应用程序实例,因此让MemSQL在服务器之间分布运行非常有吸引力,而不必在服务器上的应用程序的每个JVM实例中复制H2数据库。通过TCP将一个H2实例运行到其他服务器将太慢。
我在MemSQL中看到的另一个优点是,显然没有锁定,并且查询被编译为本机C ++,这可以加快它们的速度。
有没有人比较过MemSQL的性能和H2? - 我从现实世界的测试中找不到任何内容。
答案 0 :(得分:4)
来自MemSQL的Mark L。我想解决您的一些问题,并提供额外的帮助,以获取您所询问的信息/基准。
MemSQL通过JDBC连接器支持链接表 - 实际上它与MySQL一样工作 - 所以你可以毫无问题地使用它。在分布式模式下运行MemSQL确实会提供巨大的性能优势,并且您将在吞吐量和延迟方面看到一些重大改进。我没有在H2和MemSQL之间直接比较 - 但是,你可以通过查看MemSQL与MySQL的比较得出一些间接的结论,因为我们有来自网站的H2与MySQL的比较数据。根据我们的现场经验,我希望您在使用MemSQL时能够获得显着的性能提升。
一般来说,有一些观察结果:在MemSQL分布式版本中,你将拥有几个你无法从H2获得的优势:由于无锁索引,完全MVCC(H2只能在单个中执行此操作,因此读取从不阻止写入)框),以及高亮之间的数据自动分片。在所有功能中,自动分片可能是您用例中最重要的--H2无法自动分片数据,并且即使两者之间的速度相等,分配时具有这种能力显然也是一大优势。正如我所提到的,虽然MemSQL的分发速度会快得多,而且对H2的多个实例也更容易管理。
无论如何,我们非常乐意帮助您证明这一点!请随时通过memsql dot com上的email-larosa与我联系。