Bueno yo sobre bases de datos no se, estoy preparandome en el tema en estos momentos y voy por el comienzo, pero con serializacion si he trabajado, para mi es una super potencia de java, no me canso de agradecerle a la SUN tan potente herramienta, fijate si es asi que microsoft la copio y tambien permite serializar en Visual Studio.
Sobre lentitud te dire que yo no me he topado con que sea lento, claro que todo depende de la cantidad de datos que serialices, te recomiendo que serialices en fichero separados por un orden si son muchos los datos que quieres guardar, ya que no lo he visto lento pero si hay muchos datos imagino que si demore algo porque tiene que leer todo el flujo de datos.
A continuacion te pongo como se serializa por si no sabes.
1 - Primero, las clases que definen el objeto que quieres serializar tienen que implementar la interface SERIALIZABLE.
2 - Segundo (codigo):
ObjectOutputStream myObjt = new ObjectOutputStream(new
FileOutputStream("mifichero.dat"));
myObjt.writeObject(aquiPongoElObjetoQueQuieroSerializar);
myObjt.close();
ObjectInputStream myObjt2 = new ObjectInputStream(new
FileInputStream("mifichero.dat"));
Integer i = (Integer) myObjt2.readObject();
myObjt2.close();
Ahi te puse como se escribe un objeto y como se lee, donde como imaginaras Output es salida y Input entrada, esta claro, si no lo entiendes dime para manana explicarte con mas detalles, en la parte de leer te puse como para leer un objeto de tipo Integer, claro que para ti pones el tipo que vallas a leer, fijate que hay un cast, porque lo que esta guardado es un Objet, y tienes que indicar que es de tu tipo, ok.
PD: te aconsejo que utilices el modificador TRANSIENT en tus clases para que disminuyas la cantidad de datos a serializar, para el caso que no sean innecesarios.
Saludos.......
Pedro