【系统架构设计 每日一问】四 如何对关系型数据库及NoSql数据库选型
根据不同的业务需求和场景,选择适合的数据库类型至关重要。以下是一个优化后的表格展示,涵盖了管理型系统、大流量系统、日志型系统、搜索型系统、事务型系统、离线计算和实时计算七大类业务系统的数据库选型建议。先明确下NoSQL的分类
NoSQL数据库分类
场景分析及选型
系统类型 | 场景 | 数据量 | 并发量 | 实时性 | 一致性要求 | 读写分布和类型 | 安全性 | 运维性 | 数据库选型 |
---|---|---|---|---|---|---|---|---|---|
管理型系统 | 运营类管理 | 中等 | 中等 | 中等 | 高 | 读写均衡 | 高 | 高 | 关系型数据库(如MySQL、PostgreSQL) |
大流量系统 | 电商单品页服务 | 高 | 高 | 高 | 高(后台) | 读多写少(前台) | 高 | 高 | 后台:关系型数据库(如MySQL、PostgreSQL) 前台:K-V数据库(如Redis、Memcached) |
日志型系统 | 日志收集与分析 | 高 | 低 | 低 | 低 | 写多读少 | 中 | 中 | 原始数据:列式数据库(如HBase、Cassandra) 日志搜索:倒排索引数据库(如Elasticsearch) |
搜索型系统 | 站内商品搜索 | 中等 | 高 | 高 | 低 | 读多写少 | 中 | 中 | 后台:关系型数据库(如MySQL、PostgreSQL) 前台:倒排索引数据库(如Elasticsearch) |
事务型系统 | 金融交易、库存 | 中等 | 高 | 高 | 高 | 读写均衡 | 高 | 高 | 关系型数据库(如MySQL、PostgreSQL)+ 缓存(如Redis)+ 一致性协议(如Paxos、Raft)或新型关系数据库(如CockroachDB、TiDB) |
离线计算 | 大数据批量分析 | 高 | 低 | 低 | 低 | 读多写少 | 中 | 中 | 列式数据库(如Hadoop HDFS、Apache Parquet) 或关系型数据库(如MySQL、PostgreSQL) |
实时计算 | 实时监控、物联网 | 中高 | 高 | 高 | 中 | 写多读少 | 中 | 中 | 时序数据库(如InfluxDB、TimescaleDB) 或列式数据库(如Druid、ClickHouse) |
详细说明
-
管理型系统:
- 适用场景:运营类系统、管理信息系统。
- 数据库选型:关系型数据库(如MySQL、PostgreSQL)因为其高一致性和数据完整性。
-
大流量系统:
- 适用场景:电商单品页的某个服务。
- 数据库选型:
- 后台:关系型数据库(如MySQL、PostgreSQL)以确保数据一致性。
- 前台:内存型数据库(如Redis、Memcached)以应对高并发和快速响应需求。
-
日志型系统:
- 适用场景:日志收集和分析。
- 数据库选型:
- 原始数据存储:列式数据库(如HBase、Cassandra)以优化大数据写入。
- 日志搜索:倒排索引数据库(如Elasticsearch)以实现快速查询和搜索。
-
搜索型系统:
- 适用场景:站内搜索(如商品搜索)。
- 数据库选型:
- 后台:关系型数据库(如MySQL、PostgreSQL)用于数据管理。
- 前台:倒排索引数据库(如Elasticsearch)用于快速搜索和查询。
-
事务型系统:
- 适用场景:库存管理、交易系统、记账系统。
- 数据库选型:关系型数据库(如MySQL、PostgreSQL)+ 缓存(如Redis)+ 一致性协议(如Paxos、Raft),或者使用新型关系数据库(如CockroachDB、TiDB)以确保数据一致性和高并发处理。
-
离线计算:
- 适用场景:大数据分析和处理。
- 数据库选型:列式数据库(如Hadoop HDFS、Apache Parquet)或关系型数据库(如MySQL、PostgreSQL)以应对大量数据的批量处理需求。
-
实时计算:
- 适用场景:实时监控和分析。
- 数据库选型:时序数据库(如InfluxDB、TimescaleDB)或列式数据库(如Druid、ClickHouse)以支持高频数据写入和实时分析。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。