Ver Mensaje Individual
  #9 (permalink)  
Antiguo 13/03/2007, 11:38
GreenEyed
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 8 meses
Puntos: 51
Re: Java + JavaSqlite

Si y no . HSQLDB tambien puede trabajar en modo servidor, y entonces tienes que poner en marcha un servidor etc, como una BDD normal, y un modo "en memoria". El modo "en memoria" efectivamente carga la BDD en memoria y en caso de tener una BDD muy grande, no es lo más conveniente. De todas formas, los campos de tipo BLOB y CLOB no se guardan en memoria sino en disco, así que una BDD grande en memoria sin contar esos objetos sería una "muy señora BDD".

Aun así en las ultimas versiones hay una forma, creo recordar, de decirle si una tabla la quieres en memoria o quieres que la lea de disco, así que siempre podrías sacrificar algo de rendimento y decirle que las tablas más grandes y menos usadas las guarde en disco.

Y por último, si necesitas una "muy señora" BDD con acceso eficiente... entonces no deberías mirar bases embebidas en memoria, para no sobrecargar una maquina con la aplicacion y la BDD a la vez, así que no es "tanto" problema.

Es decir, tienen un nicho para el cual son muy muy útiles, pero no hay que "sacarlas de sitio" por que si no te encontraras naturalmente con muchos problemas.

PD: Una estrategia que pareció favorecer Oracle durante un tiempo, aunque no he vuelto a oir mencionar el tema, era usar una BDD en memoria desde la aplicación que "transparentemente" hacía de cache de una BDD Oracle por detras. Si realmente funcionara de forma transparente sería una forma estupenda, ya que una gran parte del tiempo en muchas aplicaciones se pierde en los datos viajando por la red entre la BDD y la aplicación, sobretodo en aplicaciones que usen ORM's (Object Relational Mappers) como Hibernate, JPA, JDO....

Como ejemplo: El Rincon Java http://www.greeneyed.org/guide/java/ usa, en su implementación actual, Hibernate y HSQLDB. Antes de eso usaba Hibernate y Oracle. Porté la BDD, cargue todos los datos, cambié el driver JDBC y modifiqué la cadena de conexión y sin tocar ni una linea de codigo el tiempo de respuesta fue 20 veces mejor, simplemente ahorrandome el tráfico por la red. Como la BDD es pequeña (911KB) es una solución perfecta y me ahorro tener que configurar MySQL en el hosting y en mi casa etc etc.

Pero para otras cosas no la usaría.