Choosing a database is one of the hardest decisions to reverse. PostgreSQL, MySQL, and SQLite are the three most popular relational databases — but they're optimized for very different use cases. Here's which one matches your project.
Quick Comparison
| PostgreSQL | MySQL | SQLite | |
|---|---|---|---|
| Type | Object-relational database | Relational database | Embedded database |
| Best for | Complex apps, data integrity | Web apps, read-heavy workloads | Mobile, edge, single-server |
| Concurrency | MVCC (excellent) | MVCC (good) | Single-writer (WAL) |
| Data types | JSONB, arrays, geospatial, custom | Standard + JSON | Limited (flexible typing) |
| Full-text search | Built-in (excellent) | Built-in (basic) | FTS5 extension |
| Extensions | Rich (PostGIS, pgvector, etc.) | Limited | Runtime extensions |
| Replication | Streaming, logical | Group, semi-sync | Not built-in (Litestream) |
| Scaling | Vertical + read replicas | Vertical + read replicas | Not designed to scale |
| Setup | Separate server | Separate server | File-based (zero config) |
| License | PostgreSQL License | GPL (Oracle) | Public Domain |
PostgreSQL — The Power User's Database
PostgreSQL (Postgres) is the most capable open-source relational database. It's the default choice for new projects in 2026 for good reason: unmatched feature set, strict SQL compliance, and an extension ecosystem (PostGIS, pgvector, TimescaleDB) that turns it into a specialized engine for any workload.
Strengths: JSONB (indexed JSON) means you can go relational + document in one DB. Array and custom types. Full-text search is built in. Extensions for any use case (vectors, time-series, geospatial). Strictest ACID compliance. Best-in-class MVCC concurrency. Robust replication.
Weaknesses: Requires a server process (more ops overhead than SQLite). Vertical scaling ceiling lower than distributed SQL databases. Configuration tuning for performance. Replication setup is more complex than managed solutions.
Best for: Web applications, SaaS products, any project that needs data integrity, applications that will grow, teams that want one database that does everything.
MySQL — The Web Workhorse
MySQL powers a huge portion of the web. WordPress, Shopify, and countless PHP applications run on it. MySQL 8.0+ has closed many feature gaps with Postgres (window functions, CTEs, JSON), but its philosophy is different: simpler, faster for read-heavy workloads, and easier to operate.
Strengths: Massive adoption (lots of docs and tooling). Excellent read performance. Widest hosting support (every shared host has MySQL). MySQL Workbench for GUI administration. InnoDB is battle-tested. Good for simple schemas and read-heavy apps.
Weaknesses: SQL compliance is looser than Postgres. Fewer advanced data types. Extension ecosystem is much smaller. GPL license (Oracle-owned). Replication is less flexible. Some surprising defaults (silent truncation).
Best for: WordPress/PHP ecosystem projects, read-heavy web apps, projects where operational simplicity matters more than advanced features, teams already familiar with MySQL.
SQLite — The Zero-Config Database
SQLite is fundamentally different: it's a library that reads and writes directly to a single file. No server, no configuration, no permissions. It's the most deployed database in the world — in every phone, browser, and embedded device. In 2026, SQLite is increasingly used for production web apps (via Litestream for replication).
Strengths: Zero setup — just a file. Incredibly reliable (backwards-compatible file format). Perfect for single-server deployments. Litestream adds replication to S3. Excellent for mobile and desktop apps (local-first). Can handle surprising scale (1TB databases, millions of rows).
Weaknesses: Single concurrent writer (queued writes). Not designed for multi-server web apps (no connection pooling). Fewer data types (flexible type system can hide bugs). No built-in user management. Not suitable for high-write-concurrency workloads.
Best for: Mobile and desktop apps, single-server web apps, edge/embedded devices, prototyping and testing, local-first applications, projects that want to minimize ops.
Decision Matrix
| Scenario | Best Database |
|---|---|
| Web app, SaaS, API backend | PostgreSQL |
| WordPress, PHP, shared hosting | MySQL |
| Mobile app (iOS/Android) | SQLite |
| AI/vector search | PostgreSQL + pgvector |
| Single-server side project | SQLite (zero ops) |
| Geospatial (maps, locations) | PostgreSQL + PostGIS |
| Maximum managed service options | PostgreSQL (RDS, Supabase, Neon, etc.) |
Bottom line: Default to PostgreSQL for any web application. Use SQLite for mobile apps, side projects, and when you want zero operations overhead. MySQL if you're in the PHP/WordPress ecosystem. See our Supabase vs Firebase vs Neon guide for managed database services.