When choosing a database, different people use different criteria:
- Database procurement staff:
- Purchase costs:
- storage requirements
- network requirements.
- Purchase costs:
- Database administrators (DBAs) care about:
- Operation and maintenance costs:
- A reliable monitoring and alerting system
- Support for backup and restore
- Reasonable upgrade and migration costs
- An active support community
- Ease of performance tuning
- Ease of troubleshooting
- Service stability:
- Support for multiple data replicas
- Highly available services
- Support for multiple writes and multi-active architecture
- Performance:
- Latency
- Queries per second (QPS)
- Whether it supports more advanced hierarchical storage features
- Scalability: Whether it’s easy to scale horizontally and vertically
- Security: Whether it meets audit requirements and prevents SQL injections and information leakage
- Operation and maintenance costs:
- Application developers care about:
- Stable services
- Performance
- Scalability
- Ease of developing database interface
- Ease of modifying the database schema
Simply to decision between SQL and NoSQL
- Data Schema Complex
- Yes —–> 2
- No —–> 3
- Various search method or strong analysis (Select method > Update method)
- Yes —–> SQL
- No —–> NoSQL
- Put into lower performance devices
- Yes —–> NoSQL
- No —–> SQL
Simply choose a kind type of SQL Database
- DATA SIZE < 1TB ?
- Yes —–> 2
- No —–> 3
- Need Open-Sources ?
- Yes —–> MariaDB
- No —–> MariaDB / MySQL
- Scalability?
- No —–> TokuDB
- Yes —–> TiDB
Simply choose a kind type of NoSQL Database
- Document database ?
- Yes —–> MongoDB
- No —–> 2
- Accept latency ?
- Yes —–> TiKV
- No —–> 3
- Data size ?
- Size > 100 GB —–> Couchbase
- 20GB > Size > 100GB —–> 4
- Size < 20 GB —–> Redis
- Schema Complex?
- Yes —–> Redis cluster / Smart Jedis
- No —–> Couchbase