2009-01-02 13 views
17

¿Cómo coloco toda mi base de datos PostgreSql en la memoria RAM para un acceso más rápido? Tengo 8 GB de memoria y deseo dedicar 2 GB para la base de datos. He leído acerca de la configuración de búferes compartidos, pero solo almacena el fragmento más visitado de la base de datos. Necesitaba una solución en la que toda la base de datos se colocara en la RAM y cualquier lectura pasaría desde la base de datos RAM y cualquier operación de escritura primero escribiría en la base de datos RAM y luego en la base de datos en el disco duro (algo así como el predeterminado fsync = con búferes compartidos en configuración de configuración postgresql).Necesita cargar toda la base de datos postgreSQL en la RAM

+0

Btw, es para un sitio web para el que estoy usando Python y django framework. – Bharath

Respuesta

4

Me he hecho la misma pregunta por un tiempo. Una de las desventajas de PostgreSQL es que no parece ser compatible con los motores de almacenamiento IN MEMORY como lo hace MySQL ...

De todas formas me encontré con un article hace unas semanas describiendo cómo se podía hacer esto; aunque parece que solo funciona en Linux. Realmente no puedo responder por ello, porque no lo he probado, pero parece tener sentido, ya que un espacio de tabla PostgreSQL está asignado a un repositorio montado.

Sin embargo, incluso con este enfoque, no estoy seguro de que podría poner su índice (s) en la memoria RAM, así; No creo que MySQL fuerce el uso del índice HASH con su tabla IN MEMORY por nada ...

También quería hacer algo similar para mejorar el rendimiento porque también estoy trabajando con grandes conjuntos de datos. Estoy usando Python; tienen tipos de datos de diccionario que son básicamente tablas hash en forma de pares de {clave: valor}. Usar estos es muy eficiente y efectivo. Básicamente, para obtener mi tabla PostgreSQL en RAM, la cargo en dicho diccionario python, trabajo con él y lo mantengo en db de vez en cuando; Vale la pena si se usa bien.

Si no está utilizando Python, estoy bastante seguro de que su es una estructura de datos de diccionario de mapeo similar en su idioma.

Espero que esto ayude!

+0

El artículo ya no está disponible en ese enlace. Archive.org lo tiene: https://web.archive.org/web/20080517112936/http://www.redhatmagazine.com/2007/12/12/tip-from-an-rhce-memory-storage-on- postgresql/ – Otheus

0

Con una base de datos única de 8 GB, si ya ha optimizado toda la actividad de SQL y ya está listo resolver los problemas de la consulta con el hardware, sugiero que estás en problemas. Esto simplemente no es una solución escalable a largo plazo. ¿Estás seguro de que no hay nada que puedas hacer para establecer diferencias sustanciales en el lado del software y del diseño de la base de datos?

0

Establecer un antiguo disco de RAM y decirle pg para almacenar sus datos allí.

Sin embargo, asegúrese de respaldarlo bien.

+5

¿no perdería sus datos en un reinicio del servidor? – SDReyes

Cuestiones relacionadas