按用途分类
OLTP(Online Transaction Processing)
- 在线事务(交易)处理系统
- SQL语句不复杂,大都处于事务中
- 并发量大,对可用性要求极高
- MySQL/PostgreSQL
OLAP(Online Analytical Processing)
- 在线分析处理系统
- SQL语句复杂,数据量大
- 一般以单个事务为单位
- Hive/SparkSQL/GreenPlum
HTAP(Hybrid Transaction Processing)
- 混合事务/分析处理
- 混合了两种数据库的特点,实现一架构多功能
- 阿里的OCEANBASE
按存储形式分类
行存
- 行存储的数据库更适合OLTP
列存
- 列存储的数据库更适合OLAP
KV
- key:value 方式存储,读取速度极快
- Redis/Memcached
按架构分类
Shared-Everything
所有资源都共享,启多个服务器节点都使用同一套资源,跟单节点差别不大,一般数据库都不采用
Shared-Memory
内存和磁盘共享,但有多个独立cpu,这种一般用在超级计算机上,提升计算性能
Shared-Disk
只共享磁盘,每个节点有单独的cpu和内存。像阿里的PolarDB就采用的这个架构。网吧也是用的这个架构
Shared-Nothing
什么都不共享
像我们平时的mysql集群,主从复制,还有分库分表都是分开独立的,相互之前通过网络请求联系