Сравнение MemSQL и H2

Я подумываю о переходе с H2 на MemSQL, и буду очень признателен за любые комментарии:

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

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

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

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

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

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


person joechip    schedule 05.07.2013    source источник


Ответы (1)


Отметьте 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.

person Mark L    schedule 06.07.2013