share-everything and share-nothing原理区别
(1) Sharding:某个表从物理存储上被水平分割,并分配给多台服务器(或多个实例),每台服务器可以独立工作,具备共同的schema,比如MySQL Proxy和Google的各种架构,只需增加服务器数就可以增加处理能力和容量。(scale out)
(2) Horizontal Partition:管理某个表数据一台服务器(或一个实例)将数据水平分割为多个部分,分别加以管理,便于减小索引的size,以及加速查询,这个方面可能各种商业数据库都是这么干的,如RAC。
(3) Share Nothing:这个是从服务(实例)的角度来定义的,即数据库服务器(或者实例)之间不共享任何和存储相关的部分,我感觉这个架构多指数据仓库。Teradata是真正SN,而DB2据说是共享内存的。另外,即便是share nothing,实际上也是有共享的元数据库服务器
分清楚上述概念则可以推知:
l Sharding的系统是Share Nothing架构,因为里面的各项数据都不共享。元数据除外