Вопрос по jboss, h2, database – Есть ли причины, по которым база данных h2 не должна использоваться в производстве?

20

Недавно я рассматривал вопрос о создании приложения, использующего базу данных h2 в качестве основной базы данных (поскольку оно поставляется с JBoss), но меня это немного беспокоит. Я читал в нескольких местах (в основном на форумах), что не следует использовать h2 в производстве. Есть ли для этого конкретные причины?

Спасибо, что направили меня туда. Если есть что добавить, я тоже с удовольствием читаю, так как этим ответам 18 месяцев. bjedrzejewski
Второй ответ на связанный вопрос дает прямую ссылку на документацию; эта ссылка должна дать ответ о том, изменились ли проблемы многопоточности. Если нет, то это главная причина не использовать его в производстве, IMO. Ken White
похожий на:stackoverflow.com/questions/4687156/how-reliable-is-h2-database TJD

Ваш Ответ

3   ответа
2

Для меня нет причин не использовать H2DB в производстве для проектов среднего размера. Мы развернули производственную систему для примерно пятнадцати клиентов, все из которых использовали H2DB, у нас были очень простые установки и резервное копирование, и в то же время проблем с базой данных не было.

9

По моему личному опыту, H2 версия 1.2.147 кажется очень надежной, 100% успешной примерно в 60 инсталляциях, но мои клиенты имеют только относительно небольшие базы данных (400 МБ большего размера), и моя программа использует только одно соединение (lol), только недавно я начал использовать более одного соединения, но с multi_threaded false. У меня были проблемы с некоторыми предыдущими версиями, и я боюсь пробовать новые версии.

Когда вы говорите, что используете только одно соединение - вы имеете в виду только одного пользователя, обращающегося к базе данных, или это будет эквивалентно развертыванию его на JBoss и управлении JBoss? bjedrzejewski
25

Основные причины не использовать H2 (или HSQLDB, или Derby) для производства:

  • Probability of critical bugs: compared to the 'big' databases Oracle, IBM DB 2, MS SQL Server, MySQL, PostgreSQL, the Java databases are relatively new and therefore possibly not as stable (have bugs). Please note this is true for all newer products, including NoSQL databases, and new releases of the 'big' databases. Generally, the more a product is tested, the less the probability of bugs. Of course it depends on your use case whether it makes sense to pay (possibly a lot of money) for this advantage. In any case you will need to backup the data, in case of hardware failure for example.

  • Missing features and optimizations: the 'big' databases have more features and optimizations for special use cases. Whether or not you need those features is up to you.

  • Commercial support: it's easier to get support for bigger databases. Please note commercial support is available for H2 as well. HSQLDB also provides commercial support. IBM used to provide support for Apache Derby (well, IBM Cloudscape), but I believe they stopped.

Нет, я думаю, что ситуация все та же.
Конечно, H2 (и HSQLDB, и Derby) улучшились и стали более стабильными за последние 5 лет, и являются «достаточно хорошими». для гораздо большего количества случаев использования. Тем не менее, другие базы данных все еще более стабильны / имеют больше возможностей.
Это зависит от варианта использования. Если вы хотите использовать H2 в качестве замены базы данных Oracle (например), ситуация не сильно изменится. Но если вы хотите использовать его во встроенном режиме или просто хотите использовать MVStore, тогда имеет смысл использовать H2.
Позвольте мне продолжить традицию. Спустя 5 лет, вы все еще думаете, что H2 в режиме сервера для проектов среднего размера (до 1 миллиарда записей) не может быть рекомендовано?
Изменилась ли ваша позиция через 2 года?

Похожие вопросы