A table of major databases and what they're used for, explained in clear and easy to understand language. Click on a column header to sort (once for ascending, and twice for descending). To learn more about different types of databases and what they're used for, check out The Beginner's Guide to Databases here.
Database | Description | Primary Category | Secondary Category | Open Source |
---|---|---|---|---|
Postgres is an open source relational database initially released back in 1997. It’s one of the standard “boilerplate” choices for teams getting started on a new app. You can run Postgres yourself on a server, or pay someone like Amazon to run it for you. | User-facing | Relational | 👍 | |
MySQL is an open source relational database, initially released in 1995. It’s the other database most teams reach for, although since Oracle bought Sun (and ergo MySQL), there are legal ramifications to modifying the MySQL code for commercial use. In terms of MySQL vs. Postgres, the short story is that they’re very, very similar but have a few important differences with how they handle data types, storage engines, and a few other things. | User-facing | Relational | 👍 | |
MSSQL is Microsoft’s proprietary SQL database. It’s popular among very large companies but not for smaller startups. | User-facing | Relational | ❌ | |
MariaDB is another open source relational database, from the original creators of MySQL. They (in a somewhat cheeky fashion) seem to be pretty pissed about Oracle limiting contributions to MySQL, so they focus on how open the community is and how the software will never require a license. | User-facing | Relational | 👍 | |
SQLite is a software library that lets you run a small database inside of your application. It’s used in one way or another in tons and tons of apps, usually as an intermediate database as opposed to a core production store. The website says it’s on every single Android, iPhone, etc. | User-facing | Relational | 👍 | |
MongoDB popularized the NoSQL moniker and is the default choice if you’re looking for a NoSQL database to power your app. Their cloud product, Atlas, is the AWS RDS equivalent for basic NoSQL. | User-facing | NoSQL | ❌ | |
Cassandra is a NoSQL database built for really big companies who need to store lots of data and retrieve it fast. Unlike MongoDB, which is built as a document database, Cassandra is columnar, which means data is stored in entire columns (like Snowflake, actually). Using Cassandra feels a lot more like using a relational database. | User-facing | NoSQL | 👍 | |
DynamoDB is AWS’s proprietary NoSQL database. | User-facing | NoSQL | ❌ | |
Firebase is a series of tools (acquired by Google back in the day) for building apps, targeted at smaller teams and focusing on simplicity. Their database is called Firestore and it’s a really popular option for a quick, just-get-me-started kind of DB. | User-facing | NoSQL | ❌ | |
Neo4J is the most popular graph database. It’s open source but if you’re going to scale it up, you’ll need to talk to them about their enterprise license. Data in Neo4J is represented as nodes, and nodes can be connected to each other in different ways. Cyper is the name of their SQL-esque language for querying the graph. | User-facing | Graph | 👍 | |
Snowflake is a cloud data warehouse for analytics. It’s columnar, which means that data is stored (under the hood) in entire columns instead of rows; this makes large analytical queries faster, so it’s a common choice for how to build analytical DBs. | Analytical | Data Warehouse | ❌ | |
BigQuery is a cloud data warehouse for analytics. It’s very similar to Snowflake. | Analytical | Data Warehouse | ❌ | |
Redshift is a cloud data warehouse for analytics. It’s very similar to Snowflake and BigQuery. | Analytical | Data Warehouse | ❌ | |
Clickhouse is an open source (!) data warehouse for analytics. It was originally developed at Yandex, and is getting more popular. | Analytical | Data Warehouse | 👍 | |
S3 is AWS’s object storage solution – usually used for storing things like images and videos for applications – but is also commonly used as a data lake. You can’t “query” S3 in the way that you can a database, so you need to use a layer on top (like AWS’s Lake Formation) to intermediate. | Analytical | Data Lake | ❌ | |
Databricks sells a product they call “the lakehouse platform.” Under several layers of caked marketing makeup, it’s an open source data lake and storage layer built to resemble a sort of data warehouse; they’re trying to blur the distinction between the two. | Analytical | Data Lake | 👍 | |
Though it’s unlikely you’ll see it in production today, HDFS was a highly popular way to build a data lake before the cloud data warehouse era. It’s powered by Hadoop, one of the original frameworks for performing distributed computations on large groups of data. It was/is notorious for being very, very hard to set up and run. | Analytical | Data Lake | 👍 | |
Redis is the OG key value store. It’s an in memory database that teams use for a bunch of different stuff: building caches, managing authentication sessions, chat and messaging, and any other use cases that prioritize real time, very quick data retrieval. Redis is open source but you can also pay them to host it for you. | Operations | Key Value Store | 👍 | |
SingleStore (FKA MemSQL) is an in memory database like Redis, more focused on general purpose kinds of workloads than typical in memory database use cases. | Operations | Key Value Store | ❌ | |
Timescale is an extension to Postgres, sold as an independent cloud hosted database. It takes everyone’s favorite relational database and adds special time-series specific functionality like automatic partitioning and query optimizations. | Operations | Time Series | 👍 | |
Prometheus is an open source time series database with built in alerting and visualization. | Operations | Time Series | 👍 | |
InfluxDB is an open source time series database. | Operations | Time Series | 👍 | |
Elastic is a NoSQL database built for storing and searching through logs, or very granular records of server performance, API requests, and internal stuff like that. Elasticsearch is commonly used with Kibana, its sister data visualization tool. | Operations | Logs and Search | 👍 | |
Solr is also a NoSQL database built for storing and searching through logs. | Operations | Logs and Search | 👍 | |
Oracle was the first commercial relational database ever. Today it’s got the reputation of being the slowest moving company in California, but nevertheless powers the apps of tons and tons of Fortune 50 companies. Like MSSQL, this is a database for massive organizations and not startups. | User-facing | Relational | ❌ | |
CockroachDB is a distributed SQL database: it allows you to scale out a SQL database to multiple servers, which is a bit difficult to do on your own. It’s compatible with Postgres in terms of how you query it, but is built on a proprietary key-value store (although it’s open source). | User-facing | Relational | 👍 | |
Vertica is a columnar analytics database built for really big datasets. It has a pretty standard SQL interface that supports common analytical functions like regressions, pattern matching, geospatial stuff. | Analytical | Data Warehouse | ❌ | |
Teradata is an enterprise-focused managed cloud data warehouse, sort of like Snowflake. | Analytical | Data Warehouse | ❌ | |
PostGIS is a PostgreSQL extension for storing and working with geographical data. | Analytical | GIS | 👍 | |
Kinetica is an enterprise-focused database for storing geospatial and time series data. | Analytical | GIS | ❌ | |
Oracle Spatial Database is an enterprise-focused database for storing geospatial data, from our friends at big red. | Analytical | GIS | ❌ | |
VAST combines the transactional performance of a database with the query performance of a data warehouse. It's a database, data warehouse, and data lake all in one. | Analytical | Data Warehouse | ❌ |
Fun fact, the data in this table is actually stored in a database in the cloud. PostgreSQL on Supabase to be exact.
Is there a database not on the list that you'd like to see explained? Let me know!