3

I am considering moving from H2 to MemSQL - and I would greatly appreciate any comments:

My application has to query very quickly concurrently from large tables of up to 300Million rows. To achieve this I have been using the H2 in-memory database.

I'm currently using the H2 database which allows me to create linked tables in the H2 in-memory database that point to a MySQL database. This is very useful in loading data from MySQL to H2.

Can I create Linked tables in MemSQL - I see no references to this in the online MemSQL documentation?

Another challenge is that I will need to run multiple instances of the application across many servers, so having MemSQL running distributed across servers is very attractive rather than having to duplicate the H2 database in every JVM instance of the application across the servers. Running one instance of H2 via TCP to the other servers will be too slow.

The other advantage I see with MemSQL is that there is apparently no locking and the queries are compiled into native C++ which could speed them up.

Has anyone compared MemSQL performance with H2? - I've found nothing on line from real world tests.

4

1 回答 1

4

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

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

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

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

于 2013-07-06T21:11:42.697 回答