2013-07-05 2 views
3

Я рассматриваю переход от Н2 MemSQL - и я был бы весьма признателен за любые комментарии:MemSQL и сравнение H2

Мое приложение должно запросить очень быстро одновременно с большими таблицами до 300 миллионов строк. Чтобы достичь этого, я использовал базу данных H2 в памяти.

В настоящее время я использую базу данных H2, которая позволяет мне создавать связанные таблицы в базе данных H2 в памяти, которые указывают на базу данных MySQL. Это очень полезно при загрузке данных из MySQL в H2.

Могу ли я создать Связанные таблицы в MemSQL - Я не вижу ссылок на это в онлайн-документации MemSQL?

Еще одна проблема заключается в том, что мне нужно будет запускать несколько экземпляров приложения на многих серверах, поэтому использование MemSQL, распределенного между серверами, очень привлекательно, а не дублировать базу данных H2 в каждом экземпляре JVM приложения на всех серверах , Запуск одного экземпляра H2 через TCP на другие серверы будет слишком медленным.

Другим преимуществом, которое я вижу в MemSQL, является то, что, по-видимому, нет блокировки, и запросы скомпилированы в собственный C++, что может ускорить их.

Кто-нибудь сравнивал производительность MemSQL с H2? - Я ничего не нашел на линии от реальных тестов.

ответ

4

Mark L здесь из MemSQL. Я хотел затронуть несколько ваших вопросов и предложить дополнительную помощь в получении информации/тестов, о которых вы спрашиваете.

MemSQL поддерживает связанные таблицы через разъем JDBC, который на практике работает так же, как и с MySQL, поэтому у вас не будет проблем с работой. Запуск MemSQL в распределенном режиме действительно обеспечит большое преимущество в производительности, и вы увидите некоторые существенные улучшения по всем направлениям как по пропускной способности, так и по латентности. Нет прямого сравнения, которое я нашел непосредственно между H2 и MemSQL. Однако вы можете сделать некоторые косвенные выводы, посмотрев на сравнение MemSQL и MySQL, поскольку у нас есть данные сравнения для H2 или MySQL с сайта. Из нашего опыта работы на местах я бы ожидал, что вы будете наблюдать значительный прирост производительности при использовании MemSQL.

В целом несколько замечаний: в распределенной версии MemSQL у вас будет несколько преимуществ, которые вы не можете получить из H2: чтение никогда не блокирует записи благодаря индексам без блокировки, полный MVCC (H2 может делать это только в одиночном -box), а также автоматическое разбиение данных между основными моментами. Из всех функций автоматическое ошпаривание, вероятно, будет самым существенным для вашего случая использования - H2 не может автоматически обмануть данные, и наличие этой способности при распределении, очевидно, является большим преимуществом, даже если скорость была равной между двумя , Как я уже упоминал, это будет намного быстрее с распределением MemSQL, а также с более простым управлением против нескольких экземпляров H2.

В любом случае мы более чем рады помочь вам доказать это! Пожалуйста, не стесняйтесь обращаться ко мне через email-larosa в memsql dot com.