背景
不论你是投资方、还是CTO或者架构师,如果你需要在非常核心的场合选择一款数据库产品,或者你要投资一个数据库产品或团队,本文一定会为你提供一个很好的指导。
现在的数据库分类在dbranking上已经分得很细:
https://db-engines.com/en/ranking
- Complete ranking
- Relational DBMS
- Key-value stores
- Document stores
- Graph DBMS
- Time Series DBMS
- RDF stores
- Object oriented DBMS
- Search engines
- Multivalue DBMS
- Wide column stores
- Native XML DBMS
- Content stores
- Event Stores
- Navigational DBMS
本文主要评估的是关系数据库,关系数据库又分:
- OLTP:在线事务处理
- OLAP:分析型数据库
- HTAP:混合数据库(既能支持在线事务,又能支持在线分析)
评估数据库产品的18项火眼金睛
1、SQL兼容性
- SQL语法(多维分析、窗口、子查询、CTE、DDL事务、触发器、规则、事件触发器)
- 并发控制能力
- 事务隔离级别支持
- 支持的数据类型
- 支持的操作符
- 支持的索引
- 客户端语言接口
- 服务端编程接口
- 分区表能力
- 管理GUI,管理接口,管理函数,管理视图等
2、优化器能力
- 基于成本的执行计划
- 基于遗传算法的执行计划
- 多少种数据访问方法
- 支持哪些SQL 重写规则
- 支持哪些执行节点并行
- 支持哪些JOIN算法
- 支持哪些排序算法
3、扩展能力
- 并行能力(单机并行、多机并行)
- 存储能力(行存、列存储、压缩、堆存、树存)
- 扩展性 - scale up 能力
- 扩展性 - scale out 能力
- 数据复制能力
4、运算能力
- 向量计算
- JIT
- FPGA、GPU 计算扩展能力
5、内核扩展能力
内核扩展能力(自定义UDF,IDX,OP,TYPE,窗口,聚合,外部数据源,PL扩展接口)
6、可靠性、可用性、稳定性
- 多副本能力
- 备份能力
- 恢复能力(时间点恢复、并行备份恢复等能力)
- 容灾能力
- 越界回退能力
- HA能力
- 崩溃恢复能力
7、安全性
认证方法、加密类型、透明加密类型、透明加密存储
8、其他特性
流计算、图计算、GIS能力、推荐算法、时序、NOSQL、搜索、等
9、内核开发语言、模型、平台兼容性、产品软肋
- 线程模型、进程模型、
- Linux,unix, windows, ...
- 有哪些产品设计、架构方面的软肋。
10、代码成熟度、完成度
11、roadmap
12、主要代码贡献者
13、性能
tpc-b, tpc-h, tpc-ds, tpc-c, sysbench(oltp), TCO
14、应用场景、案例
15、生态
- 商业生态:高校、数据库厂商、技术服务厂商、云厂商、用户群体、应用开发商、语言生态、投资方生态
- 社区状态
- 社区活跃度
- 与其他生态的融合能力,hadoop, spark, ....
16、未来发展潜力
17、成本
- 学习成本
- 开发成本
- 运维成本
- 管理成本
18、开源许可
开源许可很重要!!
本文转自微信公众号:PostgreSQL中文社区
添加新评论0 条评论