一、Shared Everthting
单个主机,透明共享CPU/内存/IO,并行能力差。
代表:SQL Server,单机版Oracle,MySQL。不考虑大规模并发。
二、Shared Disk (分布式数据库)
处理单元使用自己的私有CPU/内存,共享磁盘系统。类似SMP模式。多用于并发比较多的OLTP业务。
数据共享,增加节点提高并行处理的能力,扩展能力较好。当存储器接口饱和的时,增加节点不能获得更高性能。
RAC则必须使用Storage Area Network (SAN),这是更昂贵更复杂的通常使用光纤通道连接到多个服务器的磁盘阵列。
代表:Oracle RAC。
三、Shared Nothing (分布式数据库)
处理单元使用自己的私有的CPU/内存/硬盘等,类似MPP模式。各处理单元通过协议通信。并行处理和扩展性能更好。
各节点独立处理自己的数据,处理后的结果向上层汇总或节点间流转。
代表:DB2 DPF和Hadoop(hadoop其实是一个体系,严格意义上不能说是数据仓库)
MySQL Cluster(分库分表),
MPP数据库代表:TeraData,Greenplum,GaussDB100,OceanBase,TBase
Oracle,Teradata,Greenplum,PostgresSQL都是关系数据库。但是,Teradata,Greenplum,PostgresSQL主要强调是大规模并行处理数据库,它们没有共享架构,也没有单点故障。Oracle数据库具有共享的架构。
https://blog.youkuaiyun.com/seteor/article/details/10532085 Shared Everything和share-nothing区别