Přeskočit na obsah
_CORE
AI & agentní systémy Podnikové informační systémy Cloud & Platform Engineering Datová platforma & integrace Bezpečnost & compliance QA, testování & observabilita IoT, automatizace & robotika Mobilní & digitální produkty Bankovnictví & finance Pojišťovnictví Veřejná správa Obrana & bezpečnost Zdravotnictví Energetika & utility Telco & média Průmysl & výroba Logistika & e-commerce Retail & věrnostní programy
Reference Technologie Blog Know-how Nástroje
O nás Spolupráce Kariéra
CS EN DE
Pojďme to probrat

PostgreSQL partitioning

04. 07. 2023 Aktualizováno: 27. 03. 2026 1 min čtení intermediate
Tento článek byl publikován v roce 2023. Některé informace mohou být zastaralé.

Rychlejší dotazy, snadnější údržba velkých tabulek.

Range partitioning

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 partitioning

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+ řádků
  • Time-series data
  • DROP PARTITION místo DELETE

Best practices

Partitioning se vyplatí od přibližně 100 milionů řádků nebo když potřebujete efektivně mazat staré záznamy (DROP PARTITION je okamžitý, DELETE může trvat hodiny). PostgreSQL automaticky provádí partition pruning — dotaz s WHERE podmínkou na partition key čte pouze relevantní partitions.

Pro časové řady je range partitioning podle měsíce nebo týdne nejčastější volba. Zvažte použití pg_partman pro automatickou správu — vytváří nové partitions dopředu a může archivovat nebo mazat staré. Hash partitioning je užitečný pro rovnoměrnou distribuci dat, například podle tenant_id v multi-tenant aplikacích. Nezapomeňte, že indexy je třeba vytvořit na každé partition zvlášť, i když PostgreSQL 11+ to umí automaticky přes partitioned indexes.

Partitioning pro velké tabulky

Zrychlí dotazy a zjednoduší údržbu.

postgresqlpartitioningperformance
Sdílet:

CORE SYSTEMS tým

Stavíme core systémy a AI agenty, které drží provoz. 15 let zkušeností s enterprise IT.