HSQLDB 2.0 pronto se lanzará. Me pregunto si superará al H2 ya que, por lo que sé, la mayoría de los usuarios prefieren H2 que HSQLDB. Estoy interesado en el soporte MVCC de HSQLDB 2.0. Aprendí que MVCC en H2 todavía es experimental. Con respecto al soporte/documentación, concurrencia, rendimiento, ¿cuál es mejor entre los dos?¿Cuál es mejor H2 o HSQLDB?
Respuesta
Ambos HyperSQL
y H2 Database
son bastante transparentes, por lo que las pruebas pueden ser el mejor enfoque para determinar cuál es más adecuado para un uso particular. Las comparaciones que implican one y other están disponibles. Comparten un heritage común, y ambos son opensource.
"la papelera es una herramienta de diseño importante" - [_ loc. cit._] (http://stackoverflow.com/a/22259102/230513) – trashgod
Gracias por ese enlace "patrimonio". Ellos resumen la historia maravillosamente. Primero vino HSQLDB (Hypersonic SQL) luego vino H2, pero HSQLDB y H2 no comparten el mismo código y son proyectos separados a partir de hoy. – specialk1st
@ specialk1st: Derecha, el _heritage_ en este caso es un autor común, código no común. – trashgod
Soy el desarrollador de una biblioteca de abstracción de base de datos (jOOQ), que admite ambas bases de datos. Mis más de 130 pruebas de integración cubren una gran cantidad de funcionalidades, incluida la llamada de procedimientos y funciones almacenados, matrices, selecciones anidadas, etc. Experimento HSQLDB 2.1
para ser ligeramente más rápido que H2 1.3
para bases de datos pequeñas en lo que respecta a DML.
Sin embargo, HSQLDB altamente supera a H2 en operaciones DDL, así como al iniciar/cerrar la instancia, incluso para una pequeña base de datos (debido a las funciones de compilación almacenada de H2 de nuevo con javac en cada inicio de base de datos!). Esto depende de la forma en que almacene las funciones almacenadas. Aparentemente, ese es un "problema" bastante específico de jOOQ, ver también el comentario de Thomas Mueller.
Por otro lado, estoy de acuerdo con el usuario trashgod, debe probar el rendimiento contra un esquema razonable y un caso de uso para usted.
Las funciones almacenadas solo se vuelven a compilar si están almacenadas "como código fuente", que es una función que no está disponible en HSQLDB (hasta donde yo sé). Si usa funciones almacenadas precompiladas, entonces no hay tal sobrecarga. –
@ThomasMueller: Gracias, no lo sabía. Eso ayudará a acelerar mis pruebas de integración masivamente. Adaptaré mi respuesta en consecuencia. HSQLDB tiene un lenguaje de procedimiento similar a PL/SQL, que es más poderoso IMO. Aunque no estoy seguro, si ese lenguaje está precompilado o interpretado ... –
- 1. Cuál es mejor - Ext.get() o document.getElementById()
- 2. min o gzip, ¿cuál es mejor?
- 3. Apache2: mod_wsgi o mod_python, ¿cuál es mejor?
- 4. Cuál es mejor: mysql_connect o mysql_pconnect
- 5. cuál es mejor ... GATE o RapidMiner
- 6. Esquema DTD o XML. ¿Cuál es mejor?
- 7. ¿Cuál es la forma correcta de cerrar H2?
- 8. Django-Socialauth o django-social-auth, ¿cuál es el mejor?
- 9. ¿Cuál es mejor framework Java/GWT o Scala/Lift?
- 10. TR1 de Boost o VC10 - ¿Cuál es mejor?
- 11. ¿Cuál es un método mejor? libsvm o svmclassify?
- 12. matriz de enteros o matriz de estructuras: ¿cuál es mejor?
- 13. ¿Cuál es la mejor opción?
- 14. HSQLDB Manager?
- 15. ¿Cuál es el más utilizado? RSS o Atom? y de cuál es mejor construir?
- 16. ¿Cuál es la mejor forma de ejecutar HSQLDB para pruebas unitarias, cuando se trabaja con Spring, Maven e hibernate?
- 17. PigServer o PigRunner? ¿Cual es mejor?
- 18. HSQLDB - que es el archivo de base de datos principal
- 19. HSQLDB Temporary Cached Table
- 20. Carga lenta: ¿cuál es el mejor enfoque?
- 21. Team City versus CruiseControl.net- ¿cuál es mejor?
- 22. que es mejor array_search o in_array?
- 23. ¿Qué es mejor XPath o Linq2Xml
- 24. ¿Qué es mejor usar: Convert.ToX o X.Parse (...)?
- 25. ¿Qué es mejor, PyInstaller o cx_Freeze?
- 26. JSF vs Stripes, ¿cuál es el mejor?
- 27. ¿Cuál es el mejor argumento Pro OOP?
- 28. ¿Creación NAnt o TFS que es mejor?
- 29. ¿Qué es mejor, o ExpectedException @test (esperado =
- 30. ¿Es mejor el subdominio o una subcarpeta?
¿Cuál es su caso de uso? ¿Qué consultas realizará contra sus datos? ¿Qué tan grande es tu información? ¿Su aplicación es de lectura o escritura pesada? – Matt
Otra pregunta perfectamente buena cerrada. – rtcarlson
Me parece fascinante que el enfoque en las respuestas parezca ser el rendimiento, a pesar de que la pregunta solo lo menciona como uno de los aspectos. Estaría mucho más interesado en otras áreas, desde soporte/documentación, usabilidad (facilidad de uso, intuitividad, conjunto de características), confiabilidad y demás. – StaxMan