2012-01-11 30 views
8

Estoy buscando una base de datos que pueda usar para almacenar datos sobre ciertas existencias durante varios años. Probablemente habrá unos miles de registros. Estoy escribiendo una aplicación en Java y Clojure que extraerá datos de esta base de datos local cuando sea necesario para mostrar los datos.Base de datos para almacenamiento local

Me preguntaba si alguien sabía de una buena base de datos para trabajar con este fin? Solo tengo experiencia con MySQL ejecutándose en el servidor.

¿Con qué base de datos sería más fácil trabajar en Clojure y Java para el almacenamiento local?

Gracias,

Adam

Respuesta

13

JDK 6 y mayores se suministra junto con el que Java DB lo suficientemente bueno para su caso de uso.

+1

Es Java DB el mismo que Apache Derby. Creo que es, pero solo quería confirmación si hay diferencias importantes? – adamjmarkham

+1

@adamjmarkham "Sun dijo que combinará Apache Derby con sus parches y lo llamará" Java DB. "El movimiento agrega otra base de datos al creciente apoyo de Sun a las aplicaciones de código abierto". de http://www.internetnews.com/dev-news/article.php/3570696/Sun+Backs+Apache+Derby+With+Java+DB.htm –

3

Para este tipo de aplicación a pequeña escala, es casi seguro que será más fácil si elige uno de los muchos embedded Java databases buenos.

Mis mejores opciones personales, probablemente sería:

  • H2 - probablemente el mejor rendimiento de la base de datos de Java pura en general, y si usted cree que su benchmarks entonces es considerablemente más rápido que MySQL y de hecho la mayoría de otras bases de datos cuando se ejecuta en un solo entorno de máquina.
  • Apache Derby - buena en todo, madura y bien apoyado (Oracle han incluido una versión de marca como Java DB en JDK recientes)

Después de eso, usted debe ser capaz de utilizarlas con bastante facilidad utilizando el conjunto de herramientas estándar JDBC, así que no es muy diferente de MySQL.

Si buscas una DSL realmente agradable para interactuar con bases de datos SQL con Clojure, definitivamente también deberías echarle un vistazo al Korma.

+1

Tenga en cuenta que el "Apache Derby" mencionado aquí fue absorbido en Java y renombrado como "Java DB"; solo son nombres diferentes para la misma cosa. Apache Derby solía ser un producto separado. Investigué las diferencias y ni siquiera pude encontrar lo suficiente en términos de características o rendimiento para justificar la adición de un archivo jar diferente al proyecto, así que uso Java DB. – arcy

+0

hmmm ¿Me corrigen si me equivoco pero no es Java DB solo en el JDK? Si desea implementar a los usuarios finales en el JRE (o a las personas que ejecutan un JDK antiguo), entonces todavía necesitará el archivo jar adicional ...... – mikera

3

He usado Apache Derby para una aplicación similar (aunque está escrito principalmente en Java). Lo han estado ejecutando durante casi cuatro años y realizaron más de 60,000 transacciones sin mayores problemas. Solo el error ocasional de mi parte.

Derby es la misma base de datos que JavaDB, sin embargo, con Derby es más fácil mantenerse al día con las versiones ya que puede incluirlo como una dependencia, en lugar de esperar cuando salga la próxima versión de JDK.

Además, IIRC, JavaDB solo se incluye con JDK, no con JRE.

2

Dependiendo de la naturaleza de sus datos y la aplicación y su disposición y/o limitaciones para trabajar con una nueva modalidad de base de datos, también puede considerar una de las bases de datos orientadas a documentos, MongoDB o CouchDB. Si sus datos y aplicaciones están orientados a SQL, use una de las bases de datos sugeridas.

Cuestiones relacionadas