- How to evaluate a database before choosing it
- Quick ranking: best databases by use case
- The best relational databases
- The best NoSQL databases
- The best Open Source databases
- The best cloud and serverless databases
- Best databases for analytics and Big Data
- The best time series databases
- The best graph databases
- The best vector databases for Artificial Intelligence
- Enterprise and legacy databases that are still present
- Final comparative table for choosing databases
- Common mistakes when choosing a database
- Database monitoring and operation
- Frequently asked questions about choosing the best database
- Conclusion
In Star Trek, Starfleet does not send the Defiant on a diplomatic mission with families on board, nor does it send the Enterprise to handle trade routes. Each class is specialized in something, and there is no “best ship”, only the right one for the mission ahead. The same applies to databases. There is no such thing as the best database in absolute terms, and anyone who says otherwise probably has something to sell us. What does exist is the best database for our use case, volume, team and budget.
That is what this comparison is about: providing a truly practical guide to choosing the optimal database according to the mission we have been assigned, without blindly following marketing claims or popularity rankings.
A small warning to navigators before we begin. This comparison assumes that we know, at least a little, the theory behind each type of database. But it is fine if our RAM memory fails us and we cannot upgrade it at today’s prices. To refresh that knowledge, we have created the most complete guide to types of databases.
The goal here is simple and, at the same time, the most important one in day-to-day work: to know which specific engine to choose in our case and why. And don’t worry, we will take a clear position when needed.
How to evaluate a database before choosing it
One of the hardest questions to answer in life is: what do we really want? And when it comes to IT, this is just as true.
Many rush into choosing without a clear idea of what they need or what they should take into account in their specific case. When that happens, it is easy to be dazzled by the marketing of a database that, once in production, does not shine as brightly as it did in the sales presentation.
That is why the first step is to clearly define the criteria to be weighted in order to gain that clarity about what we need in our specific case.
Those criteria are as follows, and we can assess them as a checklist:
- The data model best suited to what we need: is it tabular, document-based, graph-based, embeddings, time series…?
- Performance and scalability: here we consider our requirements for latency, throughput, vertical and horizontal scaling.
- Consistency: determining whether we need strict ACID, more eventual and relaxed consistency, intermediate models…
- Community and support: this will depend on the ecosystem, its drivers, whether there is a company behind it and the existence of SLAs to meet under penalty of compensation…
- Total cost of ownership: probably the biggest constraint for many, including licence, hardware, cloud bill, maintenance…
- Cloud compatibility and the required security regarding encryption, authentication, auditing…
- Administration and monitoring: can it be operated with a small team, or does it require many resources? Are there serious metrics?
- Team experience: because, frankly, the best database is the one our people know how to operate well.
Depending on the organisation we are in, each question will carry a different weight. So, if we are in a strategic sector, for example, security will move to the top, weighing more than the rest and, in general, cost and team experience will matter greatly to all of us.
Quick ranking: best databases by use case
This guide is complete and detailed, but who has the time or attention span for that?
Since we want this to be useful and for you to walk away with real practical value, here is the “TL;DR”, the summary so that, if you only have thirty seconds, you know which database is the most recommended depending on the situation in front of you.
That said, keep in mind that, unlike the tablets of the law, this is not set in stone and the IT world lives and dies by nuance, which is why we recommend reading the full guide.
|
Use case |
Recommended |
Alternatives |
Main reason |
|
General-purpose relational |
PostgreSQL |
MySQL, MariaDB |
Mature, extensible, ACID, huge community |
|
Web projects |
PostgreSQL, MySQL |
MariaDB, Supabase |
Universal support, trivial hosting |
|
Microsoft ecosystem |
SQL Server |
Azure SQL Database |
Native integration with .NET and Windows |
|
Document database |
MongoDB |
Couchbase, Firestore |
Flexible schema, broad ecosystem |
|
Key-value and cache |
Redis |
DynamoDB, Memcached |
Minimal latency, rich structures |
|
Analytics |
Snowflake |
BigQuery, ClickHouse |
Massive queries, compute/storage separation |
|
Big Data |
BigQuery, Cassandra |
Redshift, Snowflake |
Proven horizontal scaling |
|
Time series |
InfluxDB |
TimescaleDB, Prometheus |
Optimized for time and metrics |
|
Graphs |
Neo4j |
Amazon Neptune, ArangoDB |
Native model, Cypher language |
|
AI and vector search |
pgvector |
Pinecone, Milvus, Weaviate, Qdrant |
Supports embeddings and similarity |
|
Managed cloud |
Amazon RDS |
Google Cloud SQL, Azure SQL |
Minimal administration |
|
Open source |
PostgreSQL |
MySQL, MariaDB, Redis, Cassandra |
Community and open licence |
|
Embedded / local / edge |
SQLite |
DuckDB (local analytics), libSQL/Turso |
Serverless and zero administration |
Tables like this are very useful, but they necessarily leave loose ends, so let’s tie them up by going deeper and adding nuance.
The best relational databases
Time passes for everyone, but relational databases remain the default choice when data is well structured and consistency matters.
In practice, this means that if you are in doubt, you probably need a relational database.
Among them, the following stand out:
PostgreSQL
PostgreSQL is currently the best general-purpose option (see? We do take a clear position to make this practical, even if someone on Twitter is bound to disagree).
It is Open Source, ACID-compliant and extensible (pgvector, PostGIS, TimescaleDB). Of course, it is not free from limitations, and the main one is modest horizontal scalability.
MySQL
MySQL is the de facto option for the traditional web, a classic from the pioneering days, well known to those of us who have been around the longest.
Simple, popular, universally hosted… That said, it has fewer advanced features than PostgreSQL.
MariaDB
MariaDB is a community fork of MySQL that maintains compatibility and adds improvements.
It is a good option if you prefer independent governance.
Microsoft SQL Server
The obvious choice if your stack is Microsoft.
Perfect integration with .NET, Active Directory and Power BI, although, of course, licences are expensive outside the bundle.
Oracle Database
It is the standard in banking, telecommunications and public administration. With functionality as broad as its cost, it is a closed ecosystem, and you need to think carefully about whether you are ready for that kind of marriage.
SQLite
The embedded and serverless relational database, which makes it the most widely deployed engine in the world. It is ideal for desktop and mobile applications, edge, prototypes and tests.
With libSQL/Turso, it makes the leap to distributed deployments, but the reality is that it is not designed for high write concurrency.
When we need the relational model and SQL, but at global horizontal scale, the field then belongs to NewSQL or distributed SQL databases (CockroachDB, YugabyteDB, Google Spanner), which the database types guide covers in detail.
This list of open source SQL software tools also expands the picture of the open relational ecosystem.
The best NoSQL databases
NoSQL, despite its name, is not a universal alternative to SQL.
It is a heterogeneous family of engines useful for specific scalability, flexibility or semi-structured data challenges. That is why it is worth being clear about the differences between SQL and NoSQL before choosing.
MongoDB
MongoDB is a benchmark in document databases.
It is easy to get started with and has a broad ecosystem. But if we use it as a relational database in disguise, we will suffer.
Cassandra
It is designed for massive distributed write scenarios, high availability and horizontal scaling. Its data model is demanding and forces us to design queries properly from the start.
Redis
Redis is the queen of caching and in-memory data structures. It can persist data to disk, but it should not be treated as a traditional durable database in every scenario.
Since its licence change in 2024, it has coexisted with Valkey, its open fork backed by the Linux Foundation.
Couchbase
A distributed document database, with a SQL-compatible query language (N1QL/SQL++) and an enterprise focus.
It can be a good alternative to MongoDB in scenarios where low latency, integrated cache and geographic replication are especially important.
Amazon DynamoDB
A serverless NoSQL database managed by AWS, focused on key-value and document models.
It offers predictable latency and automatic scaling, but it is less convenient outside the AWS ecosystem or when we need complex queries.
To complement this section, we have a guide to NoSQL databases that goes into more detail on each subfamily.
The best Open Source databases
Let’s first put up the mandatory warning sign:
“Open Source” does not mean “zero cost”.
You still pay for hardware, hosting, backups, high availability, security, monitoring and people who know how to operate it.
With that understood, here are the options, some of which necessarily appear again:
PostgreSQL
PostgreSQL plays its tune once more and, again, it is the most solid and extensible general-purpose option.
MySQL and MariaDB
MySQL and MariaDB are the historic standard of the web, as mentioned earlier, proving their worth in a thousand battles since the days of Geocities.
Redis / Valkey
Redis covers cache and in-memory structures. It changed licence in 2024 and entered the SSPL/RSAL maze, although since Redis 8 it also offers AGPLv3.
For those who want a clearly free, permissive option without a licence dance, there is Valkey, its fork backed by the Linux Foundation.
Cassandra
Distributed, highly available and with real horizontal scaling capacity, so pay attention if we need the latter, because then it moves up the ranking.
ClickHouse
A very fast columnar analytics database, ideal if that is what we need.
Milvus or Qdrant
They are the free vector databases for AI and semantic search.
The topic of licences is a swamp full of too many incomprehensible pages of terms and conditions. That is why it is worth distinguishing classic Open Source with no surprises (PostgreSQL, MariaDB, Valkey, Cassandra, ClickHouse, Milvus or Qdrant) from more delicate or Source-Available models, such as MongoDB under SSPL or some Redis licence options.
The latter can be self-hosted, but their licence may restrict offering them as a managed service to third parties.
In practice, for new projects without platform restrictions, PostgreSQL + Valkey/Redis covers 80% of use cases with a proven ecosystem and without (too many) licence scares.
The best cloud and serverless databases
Cloud offerings have changed the rules. What used to be “installing a database” is now, in many cases, “consuming one”.
Here are the most established options:
Amazon RDS / Aurora
RDS manages PostgreSQL, MySQL, MariaDB, Oracle and SQL Server, so it will be interesting for many.
Aurora is AWS’s own relational engine, compatible with MySQL and PostgreSQL.
Amazon DynamoDB
Amazon DynamoDB is pure serverless, key-value and document-based, with automatic scaling.
Ideal when we need to resize without fighting with servers.
Google Cloud SQL and Azure SQL Database
Cloud SQL is the natural equivalent of RDS in GCP.
In Azure, SQL Database covers the SQL Server world, while Azure Database for PostgreSQL and Azure Database for MySQL are available for PostgreSQL and MySQL.
In all cases, they are reasonable options when we are waist-deep in Google or Windows ecosystems.
Google BigQuery
Google BigQuery is serverless analytics that, in its on-demand mode, bills for the data processed in each query.
Azure Cosmos DB
Multimodel, managed and globally distributed.
MongoDB Atlas
Here MongoDB appears again, but in this case managed by the vendor itself and with a multi-cloud option.
Supabase
Supabase is managed PostgreSQL with Firebase-like extras, such as authentication, APIs, real time…, but with a relational soul.
PlanetScale
PlanetScale is managed MySQL on Vitess, with horizontal scaling and sharding (automatic data distribution across nodes) for when things get serious.
Designed for SaaS and high-growth workloads.
Firebase / Firestore
Google’s serverless document database, popular in mobile apps and prototypes.
Snowflake
Snowflake is a cloud data warehouse and a leader in enterprise analytics.
I am not going to go into an in-depth debate on cloud and serverless so as not to turn this into The Lord of the Rings, but:
In favour: less administration, on-demand scaling, high availability included and pay-per-use.
Against: the dreaded vendor lock-in, variable costs that can skyrocket and less control over deep tuning.
Best databases for analytics and Big Data
OLTP (Online Transaction Processing) and OLAP (Online Analytical Processing) are different challenges.
So, when the question is: “How much did we sell in March, grouped by region and channel over the last five years?”, transactional relational databases start to sweat.
In those cases, the answer can be found here:
Snowflake
Snowflake is a leader in cloud data warehousing. Clear separation between storage and compute, plus deployment across multiple clouds.
BigQuery
BigQuery is serverless analytics that, in its on-demand mode, bills for the data processed in each query.
Amazon Redshift
The native AWS option and integrated with S3, of course.
ClickHouse
Open Source, columnar and lightning-fast in aggregations. Increasingly adopted for observability and product analytics.
DuckDB
The “SQLite of analytics”, with an embedded, serverless columnar engine.
Useful for local analysis on Parquet or CSV files and data apps. It is not a multi-user data warehouse, but the agile option for analysing on a single machine.
Apache Cassandra
It is not a standard OLAP database, but it can make sense in Big Data architectures when the volume is massive, distributed writes take priority and analytics are resolved later with other components.
For the full theory on when we need a data warehouse, we also have a specific guide.
The best time series databases
Metrics, telemetry and observability are the domain of databases designed around time.
If we need infrastructure metrics, industrial IoT, application telemetry, observability and time-based events, the options are:
InfluxDB
The de facto standard. In its 3.x version, it was rebuilt on technologies such as Apache Arrow, DataFusion and Parquet, and once again focused on SQL/InfluxQL, leaving Flux more closely tied to the 2.x world.
TimescaleDB
A PostgreSQL extension, which means we avoid learning a new engine and keep SQL.
Prometheus
The option from the cloud-native and Kubernetes world, with its own PromQL language.
More than a general-purpose database, it is the heart of many modern monitoring systems.
VictoriaMetrics
Open Source, compatible with Prometheus, highly storage-efficient and designed for high-volume observability.
OpenTSDB
A veteran based on HBase, although today it is practically legacy. It only makes sense in inherited Big Data environments that already use it.
The best graph databases
“Relationships are the most important thing.” A phrase that generally belongs on a sugar packet, but one that is true for organisations where relationships carry more weight than entities in their data and need to be traversed again and again.
Here we have:
Neo4j
The benchmark. Property graph model, Cypher language and mature ecosystem.
Amazon Neptune
Managed on AWS, it supports property graphs and RDF.
ArangoDB
Multimodel (graphs, documents or key-value), in case we need to combine approaches.
Typical day-to-day use cases include: fraud detection, social networks, recommendations, dependency analysis between systems or complex identity management, for example.
The best vector databases for Artificial Intelligence
This is the newest and fastest-moving segment. They store embeddings (the multidimensional numerical representations produced by AI models) and allow searches based on semantic similarity.
The contenders are:
Pinecone
Pinecone is managed, serverless, cloud-native and designed for fast production deployment.
Milvus
Milvus is Open Source, scalable and adopted in enterprise AI stacks.
Weaviate
Weaviate is Open Source, with vector and hybrid search, plus integrated modules for working with models.
Qdrant
Qdrant is Open Source, written in Rust (for showing off on Reddit or Hacker News) and delivers excellent performance.
pgvector
A PostgreSQL extension. For many cases, this is the right answer, because you get vectors in your relational database without operating a new engine.
Typical use cases? RAG (Retrieval-Augmented Generation), semantic recommenders, multimedia search, content classification…
It is worth clarifying that, despite the weight of trends and novelty in IT, vector databases do not replace relational or document databases, but complement them.
Enterprise and legacy databases that are still present
Real life is not all PostgreSQL and cloud-native, especially in many large organisations.
They still run on engines that hype ignores, but that support critical processes.
Oracle Database, Microsoft SQL Server, IBM Db2, Teradata, Informix or SAP ASE (formerly Sybase) remain relevant pieces in banking, public administration, telecommunications and industry, even if they are not necessarily the first choice for a new cloud-native project.
The point, and the warning here, is that it is worth knowing how to operate them if we have inherited them.
Final comparative table for choosing databases
Once again, and to the relief of our algorithm-fragmented attention span, let’s take the previous bible and condense the critical points into this table.
|
Database |
Type |
Best for |
Advantages |
Limitations |
Licence |
Complexity |
|
PostgreSQL |
Relational |
General-purpose |
ACID, extensible |
Limited horizontal scaling |
Open source |
Medium |
|
MySQL |
Relational |
Traditional web |
Simple, supported everywhere |
Less extensible than PostgreSQL |
Open source |
Low |
|
MariaDB |
Relational |
MySQL replacement |
Independent governance |
Smaller market share |
Open source |
Low |
|
SQL Server |
Relational |
Microsoft ecosystem |
.NET, BI integration |
Licence cost |
Commercial |
Medium |
|
Oracle Database |
Relational |
Critical enterprise |
Broad functionality |
High cost, closed |
Commercial |
High |
|
SQLite |
Embedded relational |
Local apps, edge tests |
Serverless, minimal |
Limited write concurrency |
Open source |
Low |
|
MongoDB |
Document database |
CMS, catalogues, mobile |
Flexible |
Painful when misused |
Source-available (SSPL) / commercial cloud |
Medium |
|
Cassandra |
Wide-column |
Massive distributed writes |
Horizontal scaling |
Demanding modelling |
Open source |
High |
|
Redis |
Key-value |
Cache, sessions |
Minimal latency |
Limited by RAM |
AGPLv3/SSPL/RSAL, Valkey BSD |
Low |
|
DynamoDB |
Key-value/document database |
Serverless on AWS |
Automatic scaling |
AWS lock-in |
Commercial cloud |
Low |
|
Snowflake |
Data warehouse |
>Enterprise analytics |
Multiple clouds, compute/storage separation |
Variable cost |
Commercial cloud |
Medium |
|
BigQuery |
Data warehouse |
Serverless analytics |
No clusters |
Cost per data processed |
Commercial cloud |
Low |
|
ClickHouse |
Columnar |
Open source analytics |
Raw speed |
More rigid model |
Open source |
Medium |
|
DuckDB |
Embedded analytics |
Local analysis, data apps |
Columnar, serverless |
Not multi-user |
Open source |
Low |
|
InfluxDB |
Time series |
Metrics, IoT |
Optimized for time |
Limited model |
Open source / commercial cloud |
Medium |
|
VictoriaMetrics |
Time series |
Observability at scale |
Efficient, Prometheus-compatible |
Newer ecosystem |
Open source |
Medium |
|
Neo4j |
Graphs |
Complex relationships |
Native model |
Learning curve |
GPLv3 / commercial |
Medium |
|
pgvector |
Vector |
AI within PostgreSQL |
No extra engine |
Less specialized |
Open source |
Low |
|
Pinecone |
Vector |
RAG in production |
Serverless |
Lock-in, cost |
Commercial cloud |
Low |
Common mistakes when choosing a database
Sayings are a lost art, but it is true that we always stumble over the same stones and, when it comes to choosing a database, these are the most common ones in our experience.
- Choosing based on trends or popularity rather than use case.
- Using NoSQL without a real need because “it scales more”.
- Ignoring the operational cost of the “free engine” that needs three engineers all the time.
- Not considering cloud vendor lock-in when saying “I do” to options such as DynamoDB, BigQuery or Cosmos DB.
- Failing to anticipate growth or seasonality.
- Not evaluating consistency requirements before accepting eventual consistency as the way of working.
- Forgetting about backups, security, high availability and monitoring.
- Not taking into account the actual technical team available to us.
Database monitoring and operation
I do not want to be gloomy, but choosing a database does not end with installation or contracting the service.
Any critical database needs serious monitoring.
That means monitoring:
- Availability.
- Performance.
- Connections.
- Queries.
- Storage.
- Replication.
- Errors, of course.
- Backups.
- Growth.
Without that supervision, what looks like the best decision on paper becomes an operational knot in production.
Since each engine requires different metrics and each data model has its own critical points, we explore the topic in depth in this other guide on database monitoring, which is worth keeping close at hand before moving into operation.
And for specific document database cases, this article on how to monitor RavenDB serves as an example of what needs to be monitored when getting down to work.
Frequently asked questions about choosing the best database
Let’s shed some light on the most important points we have covered, but from another angle. In this case, by recapping the most frequently asked questions and their answers.
What is the best database?
Silver bullets do not exist, and the best one depends on the use case.
Disappointing, I know, I hear that a lot, but let’s take a clear position. If you need a short, general-purpose answer, PostgreSQL is usually the most sensible default option.
What is the best Open Source database?
Again, PostgreSQL for general-purpose use, Redis or its open fork Valkey for cache, ClickHouse for analytics, Milvus or Qdrant for vector databases.
The PostgreSQL + Redis combo covers 80% of projects in many organisations, but let’s remember the non-existent silver bullet and that life is all about nuance.
Which database is best for web applications?
PostgreSQL or MySQL are good choices for traditional web.
For high-scale SaaS, Supabase, PlanetScale or Aurora significantly reduce operational work.
Which database is suitable for AI?
Here we need a vector database, such as pgvector if we already use PostgreSQL, Pinecone if we want managed serverless, or Milvus, Weaviate or Qdrant if we prefer Open Source.
Which database is best for Big Data?
Here it depends on the use case or the operations:
- For massive analytics, BigQuery or Snowflake.
- For operational distributed writes, Cassandra.
- For fast open source analytics, ClickHouse.
What is the difference between a relational database and a NoSQL database?
A relational database uses tables with a fixed schema and ACID guarantees.
NoSQL groups together more flexible non-relational models, better suited to horizontal scaling in exchange for sacrificing a certain degree of consistency.
Which database should I choose for a small project?
Depending on the situation, the recommended options at first would be:
- PostgreSQL, unless our case requires something else.
- SQLite is the answer if you are “going embedded”.
- Firestore or Supabase if we are prototyping quickly in the cloud.
Which database should I choose for a large company?
In real life, it depends on the ecosystem that is most deeply integrated.
- Microsoft → SQL Server.
- AWS → Aurora or RDS.
- Legacy banking and telco → Oracle or Db2.
- New platforms → Managed PostgreSQL plus the complement each case requires.
Conclusion
All these words just to say “it depends”, yes, because there is no universally best database. But as you can see, we have kept our promise to take a clear position by providing guidance, not just listing options as if this were Wikipedia.
PostgreSQL is one of the strongest general-purpose options today, but the right choice still depends on the data model, the use case, consistency, scale, budget and the team’s real ability to operate and monitor the solution.
Going back to Star Trek, every mission requires its own ship. That is why the difference between a solid architecture and a recurring headache does not lie in choosing “the best database”, but in choosing well for each mission and accepting that a modern stack almost always combines several.

Siempre con un teclado entre manos, desde el primer ZX Spectrum que abrí de par en par para ver cómo funcionaba, la tecnología ha sido mi pasión y trabajo, de lo que hablo y lo que escribo.
Always with a keyboard in my hands, ever since I opened up my first ZX Spectrum wide to see how it worked, technology has been my passion and my work, what I speak about and what I write about.






