Mon problème :
update de 50.000.000 de records et insert de 2.000.000 d'une façon régulière
je veux améliorer les performances qui sont très insuffisantes.
J'ai exploré les pistes :
- englober les opérations par milliers (2000-3000-5000) au sein de transaction entre BEGIN et COMMIT
- modifier les paramètres du postgresql.conf
shared_buffers (plusieurs essais 30000 50000 75000)
fsync = off (la perte de donnée en cas de crash , n'est pas génante, je peux traiter les données non insérées le lendemain)
checkpoint_segments = 10 (+sieurs essais 20 - 30)
checkpoint_timeout = 1000 (+sieurs essais 30-1800)
stats_start_collector = off (désactivation récup des stats)
Je n'ai pas la possibilité de travailler sur plusieurs disques durs pour le moment.
Sans toutefois arriver à des résultats probants.
Pour information supplémentaire : la table à une dizaine de champ text + deux champs date.
Avez vous des conseils ? des solutions ?
Connaissez vous les meilleures optimisations possibles pour mon cas ?
Merci
Partager