PostgreSQL ist die fortschrittlichste Open-Source-Datenbank. Hier ist der vollstaendige Leitfaden.
Installation¶
Der vollstaendige Leitfaden zu PostgreSQL¶
docker run -d –name pg -e POSTGRES_PASSWORD=secret -p 5432:5432 postgres:16
psql¶
psql -h localhost -U postgres
Datentypen¶
- INTEGER, BIGINT, NUMERIC
- TEXT, VARCHAR
- BOOLEAN
- TIMESTAMP, TIMESTAMPTZ
- JSONB
- UUID
- ARRAY
JSONB – das Beste aus beiden Welten¶
CREATE TABLE events (id serial, data jsonb);
INSERT INTO events (data) VALUES (‘{“type”: “click”, “page”: “/home”}’);
SELECT data->>’type’ FROM events; – Operator
CREATE INDEX idx_events_type ON events ((data->>’type’));
Volltextsuche¶
SELECT * FROM articles
WHERE to_tsvector(‘german’, title || ’ ’ || body) @@ to_tsquery(‘german’, ‘kubernetes & docker’);
Replikation¶
- Streaming Replication – async/sync, fuer HA
- Logical Replication – pro Tabelle, fuer Migrationen
Backup¶
Logisches Backup¶
pg_dump -Fc dbname > backup.dump
pg_restore -d dbname backup.dump
Physisches Backup¶
pg_basebackup -D /backup/path
Performance¶
EXPLAIN (ANALYZE, BUFFERS) SELECT …;
SELECT * FROM pg_stat_statements ORDER BY mean_exec_time DESC;
Erweiterungen¶
- pg_stat_statements – Abfragestatistiken
- PostGIS – Geodaten
- pg_trgm – unscharfe Suche
- TimescaleDB – Zeitreihen
Warum PostgreSQL¶
Relationale Daten + JSONB + Volltextsuche + GIS + Zeitreihen. Eine Engine, viele Anwendungsfaelle.