Pick the wrong database early and you pay for it for years. This guide helps you choose between PostgreSQL, MySQL/MariaDB, SQLite and MongoDB based on the shape of your data, your scale, your team's skills and how much operations work you can take on, and shows which ones you can use on each kind of Domain India hosting.
PostgreSQL is the safe default for new apps. MySQL or MariaDB is the right choice for WordPress and most PHP CMSs, and it is the database on Domain India shared hosting. SQLite is excellent for small, read-heavy apps and tools. Choose MongoDB only when your data is truly document-shaped and you have tried PostgreSQL's JSONB first.
1. The four in one line each
- PostgreSQL: relational, feature-rich, strong consistency. The default pick for new projects.
- MySQL / MariaDB: relational, huge ecosystem, the standard for WordPress and PHP apps.
- SQLite: embedded relational database in a single file, no server. Great for small apps.
- MongoDB: document database, flexible schema, JSON-like documents.
2. Decision tree
1. Is this a small app with modest traffic and one main writer? → SQLite. Don't overthink it.
2. Do you need ACID transactions, complex queries and a schema that will evolve? → PostgreSQL. The safe default for apps with a future.
3. Is this WordPress, WooCommerce, Magento, Drupal or Joomla? → MySQL or MariaDB. These platforms are built and tested against it.
4. Is the data deeply nested and different from record to record? → MongoDB, or PostgreSQL with JSONB (which usually wins).
5. Analytics, OLAP or time-series? → ClickHouse, PostgreSQL with TimescaleDB, or DuckDB. Beyond the scope of this article.
3. PostgreSQL: the default
Why most new apps pick PostgreSQL:
- Rich data types: JSONB (with indexes), arrays, ranges, geometric types
- Advanced indexes: GIN, GiST, BRIN, and HNSW through pgvector for embeddings
- Strong SQL support (window functions, CTEs, lateral joins, FILTER)
- Logical replication, useful for low-downtime upgrades and migrations
- Extensions: PostGIS, pgvector, TimescaleDB, pg_cron
- Good concurrency through MVCC
Weaknesses:
- More settings to tune than MySQL
- Fewer beginner "just works" tutorials for shared hosting setups
Good for: most new projects, SaaS, B2B and analytics-heavy apps.
See our PostgreSQL performance tuning guide.
4. MySQL / MariaDB: the ubiquitous one
MySQL is everywhere, largely because WordPress and most PHP software use it. MariaDB is a community fork of MySQL with open governance; the two have drifted apart over the years, so check which one your software supports.
Why pick MySQL or MariaDB:
- WordPress, WooCommerce, phpBB and PrestaShop expect it
- It is the database that cPanel and DirectAdmin shared hosting provide
- Mature tooling (phpMyAdmin, MySQL Workbench)
- Well-understood replication
Weaknesses:
- JSON support is less capable than PostgreSQL's JSONB
- Fewer advanced SQL features (for example, no FILTER clause on aggregates)
- Fewer index types and extensions
Good for: CMS-based sites, existing PHP code, shared hosting, the classic LAMP stack.
5. SQLite: underrated
Conventional wisdom says SQLite is for mobile and embedded apps, not production web. In practice, SQLite in WAL mode serves many production sites well, as long as writes are modest.
Why it works:
- No server, no network hop, no configuration
- A single file: easy to back up, copy to staging and inspect
- Very fast reads for local data, because there is no network round trip
- WAL mode lets readers continue while a write happens
When SQLite shines:
- Personal apps, side projects, internal tools
- Read-heavy apps
- Prototypes that may later move to PostgreSQL
When SQLite struggles:
- Many concurrent writers (only one write happens at a time)
- Several app servers sharing one database
- Very large full-text search workloads
Tools to know:
- Litestream: streams SQLite changes to S3-compatible storage for continuous backup
- Turso / libSQL: hosted SQLite-compatible databases
Good for: internal tools, low-traffic sites, prototypes.
6. MongoDB: the document database
When your data is naturally hierarchical (a product with many variants, a user with nested preferences) and varies from record to record, MongoDB can feel natural.
Strengths:
- Flexible schema (though PostgreSQL JSONB now covers much of this)
- Native JSON-like documents
- Horizontal scaling through sharding
- A powerful aggregation pipeline
Weaknesses:
- Multi-document transactions exist (since 4.0) but need care and have limits
- Joins through
$lookupare clumsier than SQL - Exposed, unauthenticated MongoDB servers are still a common cause of data leaks, so always enable authentication and keep it off the public internet
- The SSPL licence matters for some use cases
Good for: event logging, product catalogues, content with varied fields.
Recommendation: try PostgreSQL with JSONB first; it covers most MongoDB use cases while keeping relational safety. Choose MongoDB when you have hit real limits.
7. Head-to-head on common tasks
Full-text search
| Database | Built in | Quality |
|---|---|---|
| PostgreSQL | tsvector + GIN index | Good |
| MySQL | FULLTEXT index | Decent |
| SQLite | FTS5 | Good |
| MongoDB | Text index (Atlas Search on Atlas) | Basic without Atlas Search |
For serious search, add Meilisearch, Typesense or OpenSearch alongside your main database.
JSON columns
| Database | Storage | Indexing | Example query |
|---|---|---|---|
| PostgreSQL JSONB | Binary | GIN | WHERE data @> '{"active":true}' |
| MySQL JSON | Binary | Generated columns, multi-valued indexes | WHERE data->>'$.active' = 'true' |
| SQLite JSON | Text (JSONB since 3.45) | Expression indexes | WHERE data->>'active' = 1 |
| MongoDB | Native (BSON) | Native | { 'data.active': true } |
PostgreSQL JSONB matches MongoDB for most cases, inside a relational database.
Geospatial
| Database | Support |
|---|---|
| PostgreSQL + PostGIS | Best in class |
| MySQL spatial | Adequate |
| SQLite + SpatiaLite | Fine for simple work |
| MongoDB | Built-in 2dsphere indexes |
Transactions and ACID
- PostgreSQL / MySQL (InnoDB): full ACID, multi-row transactions
- SQLite: full ACID, one writer at a time
- MongoDB: single-document operations are atomic; multi-document transactions need sessions and care
Replication
- PostgreSQL: streaming and logical replication
- MySQL: binary log replication, Group Replication
- SQLite: none built in; Litestream streams to storage for backup
- MongoDB: replica sets and sharding
Backup
- PostgreSQL:
pg_dump, or point-in-time recovery with WAL archiving - MySQL:
mysqldump, MyDumper, Percona XtraBackup - SQLite: the
.backupcommand orVACUUM INTOfor a safe copy while in use (a plaincpis safe only when nothing is writing) - MongoDB:
mongodump, or filesystem snapshots
8. Which databases you can use on Domain India
| Database | cPanel / DirectAdmin shared | VPS | App Platform |
|---|---|---|---|
| MySQL / MariaDB | Yes, created in the control panel | Install it yourself | Ask support |
| PostgreSQL | No | Install it yourself | Included on every plan |
| SQLite | A file in your account; works if your language build includes it | Yes | Inside your app container |
| MongoDB | No | Install it yourself | Ask support |
What this means in practice:
- Shared hosting (cPanel, DirectAdmin): create MySQL-compatible databases in the control panel and connect on
localhost. Remote access on port 3306 is blocked by the firewall; use an SSH tunnel if SSH is enabled on your account (jailed SSH is off by default; ask support to enable it). See how to connect to a MySQL database. MongoDB is not available from shared hosting, and MongoDB Atlas usually cannot be reached from it either, because its port is not open outbound. - VPS: self-managed with full root access, so you can install PostgreSQL, MySQL, MongoDB or anything else. No backups are included, so set up your own
pg_dumpormysqldumpschedule and copy the files off the server. - App Platform: includes a PostgreSQL database on every plan, which makes it a good home for PostgreSQL apps without managing a server.
9. Migration paths
MySQL → PostgreSQL
pgloader handles most migrations:
pgloader mysql://user:pass@localhost/mydb \
postgresql://user:pass@localhost/mydbMost tables transfer cleanly. Review data types (TINYINT(1) → BOOLEAN), AUTO_INCREMENT → identity columns, and character sets (utf8mb4 → UTF8).
MongoDB → PostgreSQL
Script your own migration:
- Each collection → a table (flatten the top-level fields)
- Nested documents → a JSONB column
- Arrays → a PostgreSQL array or a separate table
SQLite → PostgreSQL
When SQLite starts to limit you, pgloader also reads SQLite files directly:
pgloader ./old.db postgresql://user:pass@localhost/mydbFor small apps you can also dump with sqlite3 old.db .dump, fix the few syntax differences, and load the result with psql.
10. Common pitfalls
When is MongoDB actually the right choice?
For event logging, content with widely varying fields, product catalogues with deep variation, and prototypes whose shape changes weekly. If you find yourself writing many $lookup joins, PostgreSQL is probably a better fit.
Which PostgreSQL version should I use?
Use the latest stable major version your platform supports; PostgreSQL 18 was released in September 2025. Apply minor updates promptly, because they carry bug and security fixes rather than new features.
MariaDB or MySQL?
For existing apps, stay on whichever the app was built and tested with. For new projects either works; check that your framework and hosting support your choice, because the two have drifted apart.
Can I use several databases in one app?
Yes. PostgreSQL for main data, Redis for cache and queues, and a search engine is a common stack. Don't add a database without a clear need.
Can SQLite really handle production web traffic?
Yes, for read-heavy apps with modest write volume on a single server. If you have many concurrent writers or several app servers, move to PostgreSQL.
Which database can I use on Domain India shared hosting?
MySQL-compatible databases, created in the cPanel or DirectAdmin control panel and reached on localhost. MongoDB is not available there. For PostgreSQL, use the App Platform (included on every plan) or a VPS, or ask support.
Ready to choose? Use MySQL on cPanel hosting, get PostgreSQL included on the App Platform, or run any database on a VPS.
Full root access to install PostgreSQL, MySQL, MongoDB or SQLite and tune them yourself.
Explore VPS plans