From: | Álvaro Hernández Tortosa <aht(at)Nosys(dot)es> |
---|---|
To: | Eduardo Morras <nec556(at)retena(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Tablas no modificables |
Date: | 2011-05-31 00:23:55 |
Message-ID: | 20110531002355.GE7800@nosys.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Mon, May 30, 2011 at 07:28:38PM +0200, Eduardo Morras escribió:
>
>Muy buenas a todos.
>
>Actualmente tengo una tabla con muchos registros y quiero
>particionarla, una parte con datos de meses anteriores que no van a
>cambiar, y otra con el mes actual. Se como hacer la particion y las
>consultas posteriores, pero mis dudas son:
>
Hola, Eduardo.
Ya te han contestado directamente a tus cuestiones, por lo que
sólo intento aportar mi granito de arena en términos generales.
MVCC es la técnica que usa PostgreSQL para el control de
concurrencia (como su nombre indica). Es, por lo tanto, un mecanismo que
no entiendo en qué puede afectar al rendimiento, cuando además no hablas
de concurrencia.
Como bien apunta Jaime, no vas a tener bloqueos si no pides
locks exclusivos (modificar, borrar la tabla, etc), por lo que vas a
poder tener múltiples consultas simultáneas sobre la tabla sin que se
molesten. Entonces ¿qué te aportaría -suponiendo que se pudiera-
"eliminar" MVCC?
En mi opinión, parece una confusión de términos. Podría pensarse
que porque MVCC es el "árbitro" de la concurrencia, ralentiza. Pero en
absoluto; al contrario, es muy eficiente gracias al uso de "MV" :)
Si tienes problemas de rendimiento con consultas grandes,
complejas y que afectan a muchos datos, no busques ayuda en
"potenciales culpables" como MVCC, sino busca soluciones conocidas y
claras. Sin conocer tu caso, se me ocurren varias:
- Dado que tus datos son WORM (Write Once, Read Many) replícalos a otras
bbdd. externas en "sólo lectura". Ahí sí que puedes usar muchas
optimizaciones.
- Revisa work_mem (que no sea muy pequeño), que puede afectar mucho a
tus consultas
- Revisa uso de índices (dependiendo la consulta, se usarán o no)
- Si tienes RAM, verifica que se usa adecuadamente (shared_buffers),
para que pueda cachear aunque sea un subconjunto de los datos y los
índices (si no se escriben, la caché de dichos datos se gestionará
fantásticamente).
Saludos,
Álvaro
--
Álvaro Hernández Tortosa
-----------
NOSYS
Networked Open SYStems
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2011-05-31 03:50:38 | Re: Tablas no modificables |
Previous Message | Anthony Rafael Sotolongo Leon | 2011-05-30 23:07:11 | Re: Permisos por columna |