Databases
sqldatabaseormpython
Notes on database families and the engines in each. The families are a way to navigate, not a recommendation to use one of each - most systems want a relational database and, occasionally, one more thing for a workload it genuinely handles badly.
Families
- Relational Databases - PostgreSQL, MySQL. The default, and usually the right one.
- Graph Databases - Neo4j, JanusGraph, Dgraph, plus RDF and SPARQL. When the relationship is the data and the traversal depth is unbounded.
- Time Series Databases - InfluxDB, TimescaleDB, Prometheus, Graphite. Timestamped, append-mostly.
- Key-Value Stores - Redis, LevelDB. Split by whether it is a server or a library.
- Document Stores and Search Engines - MongoDB, CouchDB, Elasticsearch, Solr. Self-describing documents, and the search engines that index them.
- Geographic Information Systems - PostGIS, coordinate systems, vector tiles.
Engines and tools
- PostgreSQL - the deep dive. Reaches into three of the families above through extensions.
- Presto and Trino - Presto and Trino, distributed SQL over data you did not load.
Related
- SQLAlchemy - SQL toolkit and ORM for Python.
- Message Queues - overlaps more than you would like, since Redis ends up in both.