老师的问题:传统单机关系型数据库与分布式数据库的区别是什么?
回答老师的问题,我任务首先需要需要梳理几个维度,然后通过这些维度来比较单机数据库和分布式数据库的区别,其实课程内容中老师已经
回描述了很多了,我这里总结一下自己的思考:
1.需求场景的演进
在互联网和移动互联网还没爆发的时候,系统的用户量,数据量,系统的交互实时性都比较低。这个时候单机的关系型数据库就已经够用了。
但是随着互联网和移动互联网的发展,单机的关系型数据库不能满足需求的迭代,于是分布式数据据演化出来。我们可以通过分库分表,
数据的水平拆分,垂直拆分来扩展数据库的服务能力,但是这样没有本质的改变单机的关系型数据库。
2.数据量
传统单机关系型数据库单表1亿数据量我们认为比较高了,需要拆分,分布式数据库OceanBase能支持上千亿上百TB级别的数据跨行跨表事务
处理,传统单机关系型是完全不能抗衡的。
3.数据的存储格式
传统单机关系型数据库:存储的是结构化的表数据
分布式数据库:支持结构化的表数据、半结构化数据、非结构化数据
4.数据的索引
传统单机关系型数据库:B树、B+树、hash、倒排索引;比如Mysql目前主流使用都是Innodb的 B+树索引
分布式数据库:hash、一致性hash环、数据范围分类
因为数据的格式变化得更加丰富,数据的索引也变化了
5.数据分片和数据复制
传统单机关系型数据库:可以主从复制(主提供写,从提供读);可以数据拆分。拆分后一个节点故障后不能提供服务。
分布式数据库:可以将数据拆分成很多个节点,每个节点都有多个数据副本,每个节点都能提供数据的读写,数据自动合并
6.老师上一节将的CAP理论维度
传统单机关系型数据库:支持CA,不支持P
分布式数据库:支持P,CA之间根据业务场景取舍
7.使用效率:关联查询、事务处理、排序处理
传统单机关系型数据库:三个维度都支持得很好,很成熟
分布式数据库:关联查询复杂度提高了、事务数据复杂度提高了,排序的复杂度提高了
展开