Tengo una tabla bastante grande (20M registros) que tiene un índice de 3 columnas y una columna de matriz. La columna de matriz se actualiza diariamente (al agregar nuevos valores) para todas las filas. También hay inserciones, pero no tanto como hay actualizaciones.PostgreSQL lento en una tabla grande con matrices y muchas actualizaciones
Los datos en la matriz representan las medidas diarias correspondientes a las tres teclas, algo como esto: [[date_id_1, my_value_for_date_1], [date_id_2, my_value_for_date_2]]
. Se usa para dibujar un gráfico de esos valores diarios. Supongamos que quiero visualizar el valor de la clave (a, b, c) con el tiempo, lo hago SELECT values FROM t WHERE a = my_a AND b = my_b AND c = my_c
. Luego uso la matriz values
para dibujar el gráfico.
El rendimiento de las actualizaciones (que suceden a granel una vez al día) ha empeorado considerablemente con el tiempo.
Usando PostgreSQL 8.3.8.
¿Puede darme algún indicio de dónde buscar una solución? Podría ser cualquier cosa, desde modificar algunos parámetros en postgres hasta moverlos a otra base de datos (supongo que una base de datos no relacional sería más adecuada para esta tabla en particular, pero no tengo mucha experiencia con ellos).
http://archives.postgresql.org/pgsql-performance/ –
@Milen Gracias por la pista. Soy un gran admirador de StackOverflow y lo prefiero a través de listas de correo o foros especializados.Aunque estoy de acuerdo en que esos aún tienen su lugar, y definitivamente iría allí si no pudiera encontrar ayuda en SO. – ibz
Ver también https://stackoverflow.com/questions/3361291/slow-simple-update-query-on-postgresql-database-with-3-million-rows – rogerdpack