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