Zum Inhalt springen
_CORE
KI & Agentensysteme Unternehmensinformationssysteme Cloud & Platform Engineering Datenplattform & Integration Sicherheit & Compliance QA, Testing & Observability IoT, Automatisierung & Robotik Mobile & Digitale Produkte Banken & Finanzen Versicherungen Öffentliche Verwaltung Verteidigung & Sicherheit Gesundheitswesen Energie & Versorgung Telko & Medien Industrie & Fertigung Logistik & E-Commerce Retail & Treueprogramme
Referenzen Technologien Blog Know-how Tools
Über uns Zusammenarbeit Karriere
CS EN DE
Lassen Sie uns sprechen

PostgreSQL Partitionierung

04. 07. 2023 Aktualisiert: 27. 03. 2026 1 Min. Lesezeit intermediate
Dieser Artikel wurde veröffentlicht im Jahr 2023. Einige Informationen können veraltet sein.

Schnellere Abfragen, einfachere Wartung großer Tabellen.

Range-Partitionierung

CREATE TABLE orders (
    id SERIAL,
    created_at TIMESTAMPTZ NOT NULL,
    total DECIMAL
) PARTITION BY RANGE (created_at);

CREATE TABLE orders_2024_q1 PARTITION OF orders
FOR VALUES FROM ('2024-01-01') TO ('2024-04-01');

List-Partitionierung

CREATE TABLE logs (id SERIAL, level TEXT, message TEXT)
PARTITION BY LIST (level);

CREATE TABLE logs_error PARTITION OF logs
FOR VALUES IN ('error','fatal');

pg_partman

CREATE EXTENSION pg_partman;
SELECT partman.create_parent('public.orders','created_at','native','monthly');
  • 100M+ Zeilen
  • Zeitreihendaten
  • DROP PARTITION statt DELETE

Best Practices

Partitionierung lohnt sich ab etwa 100 Millionen Zeilen oder wenn Sie alte Datensaetze effizient loeschen muessen (DROP PARTITION ist sofort, DELETE kann Stunden dauern). PostgreSQL fuehrt automatisch Partition Pruning durch — eine Abfrage mit WHERE-Bedingung auf dem Partition Key liest nur relevante Partitions.

Fuer Zeitreihen ist Range-Partitionierung nach Monat oder Woche die haeufigste Wahl. Erwaegen Sie pg_partman fuer automatische Verwaltung — es erstellt neue Partitions im Voraus und kann alte archivieren oder loeschen. Hash-Partitionierung ist nuetzlich fuer gleichmaessige Datenverteilung, beispielsweise nach tenant_id in Multi-Tenant-Anwendungen. Bedenken Sie, dass Indizes auf jeder Partition separat erstellt werden muessen, obwohl PostgreSQL 11+ dies automatisch ueber Partitioned Indexes erledigen kann.

Partitionierung für große Tabellen

Beschleunigt Abfragen und vereinfacht die Wartung.

postgresqlpartitioningperformance
Teilen:

CORE SYSTEMS Team

Wir bauen Kernsysteme und KI-Agenten, die den Betrieb am Laufen halten. 15 Jahre Erfahrung mit Enterprise-IT.