PostgreSQL vs MySQL vs SQLite: Database Comparison for Self-Hosting
Which database should your self-hosted apps use? PostgreSQL for features, MySQL for familiarity, SQLite for simplicity.
The Short Answer
SQLite
What It Is
A file-based database. No server process. The entire database is a single file.
Strengths
Weaknesses
Best For
Small apps, personal tools, development, mobile apps, read-heavy workloads.
Self-Hosted Apps Using SQLite
Vaultwarden, Uptime Kuma, Actual Budget, Paperless-ngx.
PostgreSQL
Strengths
Weaknesses
Best For
Multi-user apps, complex queries, applications that need relational integrity.
Self-Hosted Apps Using PostgreSQL
Nextcloud, Gitea, Grafana, PostHog, Outline, Mattermost.
MySQL / MariaDB
Strengths
Weaknesses
Best For
WordPress, PHP applications, legacy applications.
Self-Hosted Apps Using MySQL
WordPress, BookStack, Matomo, Ghost (also supports MySQL).
Resource Usage
| Database | Minimum RAM | Idle RAM | Concurrent Users |
|----------|------------|----------|------------------|
| SQLite | 0 MB (in-app) | 0 MB | 1 writer |
| PostgreSQL | 256 MB | 50-100 MB | Hundreds |
| MySQL | 256 MB | 100-200 MB | Hundreds |
TinyPod's Approach
TinyPod offers shared PostgreSQL and MySQL instances. Apps that support both default to PostgreSQL. Apps that require SQLite use it directly in their container.