J'ai une assez grande table (enregistrements 20M) qui a un index de 3 colonnes et une colonne de tableau. La colonne de tableau est mise à jour quotidiennement (en ajoutant de nouvelles valeurs) pour toutes les lignes. Il y a aussi des inserts, mais pas autant que des mises à jour.PostgreSQL lente sur une grande table avec des tableaux et beaucoup de mises à jour
Les données du tableau représente des mesures quotidiennes correspondant aux trois touches, quelque chose comme ceci: [[date_id_1, my_value_for_date_1], [date_id_2, my_value_for_date_2]]
. Il est utilisé pour dessiner un graphique de ces valeurs quotidiennes. Dire que je veux visualiser la valeur de la clé (a, b, c) au fil du temps, je fais SELECT values FROM t WHERE a = my_a AND b = my_b AND c = my_c
. Ensuite, j'utilise le tableau values
pour dessiner le graphique.
Performance des mises à jour (qui se produisent dans un volume une fois par jour) a considérablement empiré au fil du temps.
Utilisation de PostgreSQL 8.3.8.
Pouvez-vous me donner des conseils de l'endroit où chercher une solution? Il peut s'agir de modifier certains paramètres dans postgres ou même de passer à une autre base de données (je suppose qu'une base de données non relationnelle serait mieux adaptée à cette table particulière, mais je n'en ai pas beaucoup d'expérience).
http://archives.postgresql.org/pgsql-performance/ –
@Milen Merci pour l'indice. Je suis un grand fan de StackOverflow et je le préfère à des listes de diffusion spécialisées ou à des forums.Bien que je suis d'accord que ceux-ci ont encore leur place, et je voudrais certainement y aller si je ne pouvais pas trouver de l'aide sur SO. – ibz
Voir aussi https://stackoverflow.com/questions/3361291/slow-simple-update-query-on-postgresql-database-with-3-million-rows – rogerdpack