Shelve es demasiado lento para diccionarios grandes, ¿qué puedo hacer para mejorar el rendimiento?

Estoy almacenando una tabla usando python y necesito persistencia.

Esencialmente, estoy almacenando la tabla como una cadena de diccionario para los números. Y todo se almacena con estantería

self.DB=shelve.open("%s%sMoleculeLibrary.shelve"%(directory,os.sep),writeback=True) 

yo suelowriteback aTrue Como descubrí, el sistema tiende a ser inestable si no lo hago.

Después de los cálculos, el sistema necesita cerrar la base de datos y almacenarla nuevamente. Ahora la base de datos (la tabla) tiene aproximadamente 540 MB, y está tomando años. El tiempo explotó después de que la mesa creció a unos 500 MB. Pero necesito una mesa mucho más grande. De hecho, necesito dos de ellos.

Probablemente estoy usando la forma incorrecta de persistencia. ¿Qué puedo hacer para mejorar el rendimiento?

Respuestas a la pregunta(4)

Su respuesta a la pregunta