Что лучше H2 или HSQLDB?

HSQLDB 2.0 скоро будет выпущен. Интересно, будет ли он превосходить H2, поскольку, насколько мне известно, большинство пользователей предпочитают H2, чем HSQLDB. Меня интересует поддержка MVCC HSQLDB 2.0. Я узнал, что MVCC на H2 все еще экспериментально. Что касается поддержки/документации, concurrency, производительность, которая лучше между двумя?

Ответ 1

Обратите внимание, что я предоставил этот ответ в 2011 году. Возможно, он устарел

Моя компания разрабатывает библиотеку абстракций базы данных (jOOQ), которая поддерживает обе базы данных. Наши интеграционные тесты охватывают множество функциональных возможностей, включая вызов хранимых процедур и функций, массивов, вложенных выборок и т.д. Я считаю, что HSQLDB 2.1 немного быстрее, чем H2 1.3 для небольших баз данных, что касается DML.

Однако HSQLDB значительно превосходит H2 в операциях DDL, а также при запуске/завершении работы экземпляра даже для небольшой базы данных (из-за того, что H2 компилирует хранимые функции заново с javac при каждом запуске базы данных!). Это зависит от того, как вы храните сохраненные функции. По-видимому, это довольно специфичная для jOOQ "проблема", см. также комментарий Томаса Мюллера.

С другой стороны, я согласен с пользователем trashgod, вы должны проверить производительность на соответствие разумной схеме и сценарию использования для себя.

Ответ 2

Оба HyperSQL и H2 Database являются достаточно прозрачным, поэтому тестирование может быть лучшим подходом для определения того, что более подходит для конкретного использования. Доступны сравнения с one и другие. Они имеют общее наследие, и оба они open источник.