Haben Sie sich jemals gefragt, warum Ihre Daten-Massenladung in PostgreSQL so lange dauert? High-Level-Tipps zur Beschleunigung der Bulk-Belastung werden hier vorgestellt.
Schritte
- 1 COPY-Befehl: Verwenden Sie diese Option, um statt einer Reihe von INSERTS-Befehlen eine große Anzahl von Zeilen zu laden. Viel schneller als normale Einsätze. Mit Postgres 8.1+ Releases ist es 30% schneller.
- 2 TRUNCATE-Befehl: Verwenden Sie zum Löschen der gesamten Tabelle Trunkieren statt Löschen. Viel schneller und platzsparender.
- 3 Drop-Indizes: Erwägen Sie, Indizes vor dem Aktualisieren der Tabelle zu löschen: drop index => load (copy) => Indizes erstellen => Statistiken sammeln (analysieren)
- 4 Zu berücksichtigende Konfigurationsparameter zur Beschleunigung großer Datenmengen: Maintenance_work_mem erhöhen: Beschleunigt die Indexerstellung und beschleunigt den Vakuumbetrieb
- 5 Checkpoint-Segmente erhöhen: Leert schmutzige Speicherpuffer auf die Festplatte. Große Datenladungen können häufigere DB-Checkpoints verursachen; daher langsameres Laden. Reduziert die Häufigkeit des DB-Checkpoints; Dadurch wird die allgemeine Datenlast erhöht.
- 6 Archivierung: Berücksichtigen Sie (vorübergehend) die Archivierung von WAL-Dateien.
- 7 Statistiken analysieren: Analysieren Sie danach immer die Objektstatistik.
Facebook
Twitter
Google+