HSQLDB 2.0 скоро будет выпущен. Интересно, будет ли он превосходить H2, поскольку, насколько мне известно, большинство пользователей предпочитают H2, чем HSQLDB. Меня интересует поддержка MVCC HSQLDB 2.0. Я узнал, что MVCC на H2 все еще экспериментально. Что касается поддержки/документации, concurrency, производительность, которая лучше между двумя?
Что лучше H2 или HSQLDB?
Ответ 1
Обратите внимание, что я предоставил этот ответ в 2011 году. Возможно, он устарел
Моя компания разрабатывает библиотеку абстракций базы данных (jOOQ), которая поддерживает обе базы данных. Наши интеграционные тесты охватывают множество функциональных возможностей, включая вызов хранимых процедур и функций, массивов, вложенных выборок и т.д. Я считаю, что HSQLDB 2.1
немного быстрее, чем H2 1.3
для небольших баз данных, что касается DML.
Однако HSQLDB значительно превосходит H2 в операциях DDL, а также при запуске/завершении работы экземпляра даже для небольшой базы данных (из-за того, что H2 компилирует хранимые функции заново с javac при каждом запуске базы данных!). Это зависит от того, как вы храните сохраненные функции. По-видимому, это довольно специфичная для jOOQ "проблема", см. также комментарий Томаса Мюллера.
С другой стороны, я согласен с пользователем trashgod, вы должны проверить производительность на соответствие разумной схеме и сценарию использования для себя.
Ответ 2
Оба HyperSQL
и H2 Database
являются достаточно прозрачным, поэтому тестирование может быть лучшим подходом для определения того, что более подходит для конкретного использования. Доступны сравнения с one и другие. Они имеют общее наследие, и оба они open источник.