performance - pg_hba - optimizar base de datos postgresql
Necesidad de cargar toda la base de datos postgreSQL en la RAM (5)
¿Cómo pongo 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).
Tal vez algo como un caché de Coherencia de Tangosol si está usando Java.
Con solo una base de datos de 8 GB, si ya ha optimizado toda la actividad de SQL y está listo para resolver problemas de consulta con el hardware, le sugiero que tenga 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?
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 todos modos, me encontré con un artículo hace un par de semanas que describía 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 pueda poner su (s) índice (s) en la memoria RAM también; 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, ya que 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á usando Python, estoy bastante seguro de que es una estructura de datos de mapeo de diccionario similar en su idioma.
¡Espero que esto ayude!
si está extrayendo datos por id, use memcached - http://www.danga.com/memcached/ + postgresql.
Configura un RAMdisk antiguo y di a pg que almacene sus datos allí.
Sin embargo, asegúrate de respaldarlo bien.