存放在数据库中数据的特点 :永久存储 又组织 可共享
数据库系统是由 数据库 数据库管理系统 及开发工具 应用程序 管理员成员 组成的存储 管理 处理和维护数据的系统
三个阶段:人工阶段 ,文件系统阶段,数据库系统阶段
数据库系统优势 :整体数据结构化 面向多个应用 数据共享性高 冗余度低以扩充 数据独立性高 统一管理以及控制
数据ACID 原子性 一致性 隔离性Isolation 持久性 Durability
newsql 追求nosql的高可扩展性时 同时最求 ACID 原子性一致性隔离性持久性 关系型 适用于 OLTP场景
sharding-nothing 多节点控制并发 transparent-sharding 分片 database as a service 数据及服务 如amazon dynamodb
数据库架构发展如下图
单机架构 : 应用和数据分离开 ,应用服务可以增加服务器数量 进行负载 增大系统并发能力
优点:部署集中,运维方便 缺点:可扩展性差,只能纵向扩展 提高机器硬件 存在
主备机架构 :主机:承担读写任务 备机:承担备份任务 同一点只有一台机器对外提供服务
优点:容错性
缺点:浪费资源 性能 压力集中在主机 主机故障需要人工干预以及监控
主从架构 : 部署模式与主备模式相识 备机上升为从机对外提供服务 可通过读写分离 分散压力
优点:提高利用率 大并发场景可使用负载均衡实现负载 扩展性强 扩展不影响业务
缺点:数据延迟、写操作压力在主机上 、主机出现故障需要主从切换,人工干预需要相应时间,自动切换复杂难度较高
多主架构 :互为主从 同时对外提供服务
优点:资源利用率高 降低了单点故障的风险
缺点:延迟问题 、数据库数量增加 会导致数据同步问题变得极为复杂
共存储多活架构: 一种特殊的多主架构 数据库共享存储 而多个数据库进行负载
优点:多个服务提供高可用服务 ,而多个服务实现负载均衡 可伸缩性 避免单点故障 、比较方便横向扩展整体系统能力
缺点:实现难度大。当存储器带宽达到上限时,增加节点并不能提高性能,存储IO容易成为真个系统的瓶颈
分片架构:sharding ---> 水平数据分片架构 根据HASH list 进行数据分片 根据列表值 范围取值
优点:水平扩展 分散负载 加快查询相应速度 减少宕机影响 使程序更稳定
无共享架构:sharding-nothing 集群每个节点 拥有独立的CPU以及内存 不存在共享资源
优点:独自处理数据结果 通过上层汇总 通讯协议进行节点间信息流转 扩展能力强 并行能力强
OLTP与OLAP的区别:
OLTP 是事务性 传统关系型数据库主要应用: online Transaction processing
特点:吞吐量大,并发高 适用于 增删查改 高速查询
适用场景:零售系统/金融交易/火车售票 /秒杀活动
衡量指标 : 流量指标 TPMC 性价比 price/TMPC -->TPC-C
OLAP 分析处理型 对大量数据进行查询和分析操作 Online analytical Processing
特点: 侧重与复杂查询 聚焦于聚合 汇总 窗口计算 分新型数据 /可以从多维度分析数据
使用场景:报表 金融预测系统 数据集市 数据仓库等
衡量指标:qpbh 流量指标 聚合力 ---->TPC-H
思考题 :