true transaction stripcomments runonchange database jboss h2

database - stripcomments - liquibase sql transaction



¿Hay alguna razón por la que la base de datos h2 no deba utilizarse en la producción? (3)

En mi experiencia personal, H2 versión 1.2.147 parece muy confiable, 100% exitoso en aproximadamente 60 instalaciones, pero mis clientes solo tienen bases de datos relativamente pequeñas (400 MB son los tamaños más grandes) y mi programa usa solo una conexión (lol), solo Recientemente comencé a usar más de una conexión pero con multi_threaded false. Tuve corrupciones con algunas versiones anteriores y tengo miedo de probar versiones más nuevas todavía.

Recientemente estoy considerando crear una aplicación que use la base de datos h2 como su base de datos principal (porque viene con JBoss), pero eso me preocupa un poco. He leído en algunos lugares (foros de discusión principalmente) que no se debe usar h2 en la producción. ¿Hay razones específicas para eso?


Las razones principales para no usar H2 (o HSQLDB o Derby) para la producción son:

  • Probabilidad de errores críticos: en comparación con las bases de datos ''grandes'' Oracle, IBM DB 2, MS SQL Server, MySQL, PostgreSQL, las bases de datos Java son relativamente nuevas y, por lo tanto, posiblemente no son tan estables (tienen errores). Tenga en cuenta que esto es cierto para todos los productos más nuevos, incluidas las bases de datos NoSQL y las nuevas versiones de las bases de datos "grandes". En general, cuanto más se prueba un producto, menor es la probabilidad de errores. Por supuesto, depende de su caso de uso si tiene sentido pagar (posiblemente mucho dinero) por esta ventaja. En cualquier caso, tendrá que hacer una copia de seguridad de los datos, en caso de fallo de hardware, por ejemplo.

  • Faltan funciones y optimizaciones: las bases de datos "grandes" tienen más funciones y optimizaciones para casos de uso especiales. Si usted necesita o no esas características depende de usted.

  • Soporte comercial: es más fácil obtener soporte para bases de datos más grandes. Tenga en cuenta que el soporte comercial también está disponible para el H2 . HSQLDB también proporciona soporte comercial. IBM solía proporcionar soporte para Apache Derby (bueno, IBM Cloudscape), pero creo que se detuvieron.


Para mí, no hay razón para no usar H2DB en la producción para proyectos de tamaño medio. Implementamos un sistema de producción para una quincena de clientes, todos con H2DB. Experimentamos instalaciones y copias de seguridad muy sencillas y, sin embargo, cero problemas con respecto a la base de datos.