集中式数据库缺点
1通信开销大
2可扩展性差
3设计管理困难
分布式数据库系统要求
1 数据分布性 :数据不同地域,不同机器
2 数据统一性 :整个系统逻辑上一致的
3 数据透明性 :统一入口
4 数据安全性 :第一节点出错不会影响整体
5 数据自治性 :子系统独立管理自己的数据
6 可扩展性 :
分布式数据库的要求
两个重点 1 保证系统逻辑统一性
2 保证数据分配到不同地域上
两个要点 1 每个地域节点都是拥有集中式数据库的计算机系统
2 每个节点都是由通信网络连接起来的节点集合
体系架构 数据分配 a 数据分割
b 数据全复制 (读)
c 混合结构
数据分片 必须满足 完备性 重构条件 不相交条件
a 垂直分片 会增加数据冗余 ,将数据表按字段分割成多个表
1常更新的字段和不长更新字段分割,减少更新对磁盘的影响
2大字段和小字段分割 。查询也需要扫描这些内容消耗性能
3经常组合查询的列放在一个表中 ,
b 水平分片
分离热点 常按年份分割 PARTITION BY
c 混合分片
分布式数据库系统组件
全集数据字典
维护数据库分片规则
网络状态
完整性约束
存取路径
存取权限
锁信息
实时事务状态
事务统计信息
全局数据管理系统
任务调度
协调全局事务执行
并发控制
全局 恢复 / 提交
防死锁
数据汇总
局部数据库管理系统
心跳检测
汇报运行状态
健康状态
繁忙程度
磁盘 ,CPU ,内存消耗
接受全局管理系统命令 做本地数据库处理 (增删改查,返回结果)
通信管理系统
管理全局与局部系统之间的通信协议
管理每个节点之间的通信
分布式数据库系统的查询更新
单节点查询 与集中式一样
跨节点查询 重新改写 传输到最大数据的节点
小表广播 大表分片
分布式事务 ACID面临的挑战
原子性 2阶段提交
3阶段提交
让事务一定能提交成功 (主库。备库)
让事务一定能回滚成功(风险大)
一致性 业务逻辑保证
隔离性 MVCC多版本并发 全局管理系统下发事务版本号ID
持久化
跨机事务的优化 网络通信时间长