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

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

 Ken White22 авг. 2012 г., 00:49
Второй ответ на связанный вопрос дает прямую ссылку на документацию; эта ссылка должна дать ответ о том, изменились ли проблемы многопоточности. Если нет, то это главная причина не использовать его в производстве, IMO.
 bjedrzejewski22 авг. 2012 г., 00:46
Спасибо, что направили меня туда. Если есть что добавить, я тоже с удовольствием читаю, так как этим ответам 18 месяцев.
 TJD22 авг. 2012 г., 00:38

Ответы на вопрос(3)

Решение Вопроса

Основные причины не использовать 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.

 09 мая 2016 г., 13:10
Это зависит от варианта использования. Если вы хотите использовать H2 в качестве замены базы данных Oracle (например), ситуация не сильно изменится. Но если вы хотите использовать его во встроенном режиме или просто хотите использовать MVStore, тогда имеет смысл использовать H2.
 29 нояб. 2014 г., 13:28
Нет, я думаю, что ситуация все та же.
 26 янв. 2018 г., 20:02
Позвольте мне продолжить традицию. Спустя 5 лет, вы все еще думаете, что H2 в режиме сервера для проектов среднего размера (до 1 миллиарда записей) не может быть рекомендовано?
 27 янв. 2018 г., 08:14
Конечно, H2 (и HSQLDB, и Derby) улучшились и стали более стабильными за последние 5 лет, и являются «достаточно хорошими». для гораздо большего количества случаев использования. Тем не менее, другие базы данных все еще более стабильны / имеют больше возможностей.
 28 нояб. 2014 г., 23:10
Изменилась ли ваша позиция через 2 года?

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

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

 bjedrzejewski04 сент. 2012 г., 16:48
Когда вы говорите, что используете только одно соединение - вы имеете в виду только одного пользователя, обращающегося к базе данных, или это будет эквивалентно развертыванию его на JBoss и управлении JBoss?

Ваш ответ на вопрос