Postgres is eating the database world
Query planner behavior and control
- Several commenters praise Postgres but complain about its non-deterministic query planner.
- Pain points: planner choosing sequential scans or “wrong” indexes, dramatic performance swings from small predicate changes, join order issues, and collapse limits on join reordering.
- Workarounds mentioned:
EXPLAIN ANALYZE, disabling specific plan types (enable_seqscan = off, etc.), tuningrandom_page_cost,CLUSTERto improve index/table correlation, and rewriting joins. - Some want explicit plan hints; others argue the planner is usually right and problems often stem from stats, vacuuming, or schema/query design.
- Third‑party extensions like
pg_hint_planoffer manual plan influence.
Materialized / incremental views
- Strong interest in incremental view maintenance to keep complex analytics “fresh” in real time.
- Current common workaround: materialized views plus scheduled refresh (e.g.,
pg_cron). - Extensions like
pg_ivmexist but have many restrictions; this may explain why it’s not core. - Debate on feasibility: some see it as “just an index over a query,” others point to differential dataflow systems (Materialize, Noria, streaming frameworks) as evidence it’s possible but complex.
Admin, upgrades, and operational experience
- Many report Postgres is now easy to administer; autovacuum is considered effective.
- In-place upgrades are said to work well, but some still experience painful dump/restore workflows, especially with extensions like PostGIS.
- Tools mentioned include pgAdmin, dBeaver, web clients; experiences with pgAdmin are mixed.
Use with .NET / EF Core
- Multiple reports of smooth production use with EF Core and the Npgsql provider.
- Generally described as stable, performant, and promptly updated.
Comparisons, limits, and alternatives
- Postgres widely praised as a versatile default; some companies standardize on it over Oracle/MySQL.
- Skeptics note technical debt, process-per-connection model, write amplification, and poor fit for ultra-high-throughput transactional systems or HA‑first distributed use cases.
- Specialized systems (TigerBeetle, Cassandra/Dynamo, Kafka, Elastic, ClickHouse, DuckDB, SQLite) are seen as still necessary in certain niches.
- Debate over Postgres full-text: built-in FTS considered weaker than Elasticsearch, but extensions (ParadeDB, PGroonga, pg_trgm, pgvector, hybrid search) significantly improve capabilities.
Ecosystem, compatibility, and hype
- Extensions and protocol compatibility are viewed as major strengths; many “new databases” are perceived as Postgres-backed or Postgres-adjacent.
- Some see Postgres enthusiasm as fad-like; others point to its decades-long history and repeated “hype cycles” where people return after trying trendy systems.
- New projects aim for Postgres compatibility without reusing its codebase, to tap into existing tools and developer preferences.