Skip to content

KovacevicAleksa/WhichDBToUse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Choosing the Right Database

Selecting the right database is essential for the success of your project. Understanding your specific needs and use case will guide you in choosing the appropriate database type. Below is a list of different database types and options you can consider. Additionally, you can visit the GitHub page to access an interactive tool that will assist you in making an informed decision based on your project's requirements.

Table of Contents

Relational Databases (SQL)

Best for structured data with clear relationships and transactions.

  • PostgreSQL: Advanced open-source RDBMS with rich features
  • MySQL: Popular open-source database with strong community
  • Oracle Database: Enterprise-grade RDBMS with extensive features
  • Microsoft SQL Server: Microsoft's enterprise database solution
  • MariaDB: MySQL fork with enhanced features

NoSQL Databases

Designed for flexibility, scalability, and handling various data types.

Document Stores

Store data in flexible, JSON-like documents.

  • MongoDB: Popular document database for flexible schemas
  • Couchbase: Distributed NoSQL document database
  • Firebase Firestore: Cloud-based document store for mobile/web
  • Amazon DocumentDB: MongoDB-compatible document database

Key-Value Stores

Simple databases that store key-value pairs for fast lookups.

  • Redis: In-memory data structure store with persistence
  • Amazon DynamoDB: Fully managed, serverless key-value store
  • Memcached: Distributed memory caching system
  • etcd: Distributed key-value store for configuration data

Column-Family Stores

Optimized for queries over large datasets with high write throughput.

  • Apache Cassandra: Highly scalable, distributed database
  • ScyllaDB: High-performance drop-in Cassandra alternative
  • Google Bigtable: Scalable, fully managed NoSQL database
  • HBase: Hadoop database for large datasets

Graph Databases

Specialized for managing highly connected data.

  • Neo4j: Native graph database with visualization tools
  • Amazon Neptune: Fully managed graph database service
  • ArangoDB: Multi-model database for graphs and documents
  • TigerGraph: Scalable graph database for enterprise use

NewSQL Databases

Combine SQL guarantees with NoSQL scalability.

  • CockroachDB: Distributed SQL database with horizontal scaling
  • Google Spanner: Global distributed database with ACID properties
  • TiDB: MySQL-compatible distributed database
  • YugabyteDB: Open-source, distributed SQL database

Time-Series Databases

Optimized for time-stamped or time-series data.

  • InfluxDB: Purpose-built time series database
  • TimescaleDB: PostgreSQL extension for time-series data
  • Prometheus: Monitoring system with built-in time-series database
  • Amazon Timestream: Managed time series database service

In-Memory Databases

Store data primarily in RAM for ultra-fast performance.

  • Redis: In-memory data structure store
  • SAP HANA: In-memory, column-oriented database
  • Apache Ignite: In-memory computing platform
  • Hazelcast: In-memory data grid

Vector Databases

Specialized for machine learning and similarity search.

  • Pinecone: Managed vector database service
  • Milvus: Open-source vector database for similarity search
  • Weaviate: Open-source vector search engine
  • pgvector: PostgreSQL extension for vector storage

Data Warehouses

Optimized for analytical queries and reporting.

  • Snowflake: Cloud data warehouse with separate storage/compute
  • Amazon Redshift: Fully managed data warehouse
  • Google BigQuery: Serverless, highly scalable data warehouse
  • Azure Synapse Analytics: Integrated analytics service

Data Lakes

Store vast amounts of raw data in native formats.

  • Amazon S3 with Athena: Object storage with SQL query capability
  • Azure Data Lake: Scalable repository for big data analytics
  • Google Cloud Storage with BigQuery: Object storage with analytics
  • Databricks Delta Lake: Storage layer with ACID transactions

Cloud-native Databases

Designed and optimized for cloud environments.

  • Amazon Aurora: MySQL/PostgreSQL-compatible cloud-native RDBMS
  • Azure Cosmos DB: Multi-model, globally distributed database service
  • Google Cloud Firestore: NoSQL document database built for the cloud
  • PlanetScale: MySQL-compatible serverless database platform

Serverless Databases

Auto-scaling databases with pay-per-use pricing.

  • Amazon Aurora Serverless: Auto-scaling relational database
  • Azure Cosmos DB Serverless: Pay-per-use NoSQL database
  • FaunaDB: Global serverless database for modern applications
  • Firebase: Application development platform with serverless database

Stream Processing Databases

Process and analyze data in real-time streams.

  • Apache Kafka: Distributed event streaming platform
  • Amazon Kinesis: Real-time data streaming service
  • Apache Flink: Stream processing framework
  • Materialize: Streaming SQL database

Spatial and Geographic Databases

Optimized for spatial data and geographic information.

  • PostGIS: PostgreSQL extension for geographic data
  • MongoDB Geospatial: NoSQL support for geospatial data
  • Oracle Spatial: Spatial features for Oracle Database
  • Microsoft SQL Server Spatial: Spatial data types and functions

Immutable Databases

Store append-only data that cannot be modified once written.

  • Datomic: Immutable database with point-in-time queries
  • Amazon QLDB: Fully managed ledger database
  • EventStoreDB: Database for event sourcing with immutable logs
  • Apache Kafka: Often used for immutable event storage

Embedded Databases

Integrated directly into applications without server process.

  • SQLite: Self-contained, serverless SQL database
  • LevelDB: Fast key-value storage library
  • RocksDB: Embedded persistent key-value store
  • Berkeley DB: Family of embedded database libraries

Blockchain Databases

Distributed ledgers with cryptographic verification.

  • BigchainDB: Blockchain database for developers
  • Hyperledger Fabric: Permissioned blockchain framework
  • Amazon QLDB: Ledger database service
  • Fluree: Web3 data management platform

Edge Databases

Designed to operate at the network edge closer to data sources.

  • SQLite: Popular choice for edge computing
  • CouchDB Lite: Embedded JSON document database
  • Realm: Mobile database that runs directly on devices
  • RocksDB: Embedded key-value store for edge environments

Contributing Guidelines

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages