sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo almacena PostgreSQL en caché las declaraciones y los datos?

Por lo general, solo el contenido de los archivos de tabla e índice se almacenará en caché en el espacio de búfer compartido.

Los planes de consulta se almacenan en caché en algunas circunstancias. La mejor manera de garantizar esto es PREPARAR la consulta una vez y luego EJECUTARLA cada vez.

Los resultados de una consulta no se almacenan automáticamente en caché. Si vuelve a ejecutar la misma consulta, incluso si es idéntica letra por letra y no se han realizado actualizaciones en la base de datos, seguirá ejecutando todo el plan. Por supuesto, hará uso de cualquier tabla/índice de datos que ya esté en el caché de búferes compartidos; por lo que no necesariamente tendrá que volver a leer todos los datos del disco.

Actualización sobre el almacenamiento en caché del plan

El almacenamiento en caché del plan generalmente se realiza por sesión. Esto significa que solo la conexión que hace el plan puede usar la versión en caché. Otras conexiones tienen que hacer y usar sus propias versiones almacenadas en caché. Esto no es realmente un problema de rendimiento porque el ahorro que obtiene al reutilizar un plan es casi siempre minúsculo en comparación con el costo de conectarse de todos modos. (A menos que sus consultas sean realmente complicado.)

lo hace caché si usa PREPARE:http://www.postgresql.org /docs/current/static/sql-prepare.html

lo hace caché cuando la consulta está en una función PL/plSQL:http://www.postgresql.org/docs/current/static/plpgsql-implementation.html#PLPGSQL-PLAN-CACHING

no consultas ad-hoc de caché ingresadas en psql.

Con suerte, alguien más puede dar más detalles sobre cualquier otro caso de almacenamiento en caché del plan de consulta.