这是我参与「第五届青训营」伴学笔记创作活动的第 11 天
概念
事务
事务是由一组SQL语句组成的一个程序执行单元,需要满足ACID特性。
数据原子性
有些情况对数据库同时修改两条以上数据,需要保证两个操作同时成功或者失败,即不可拆分或称为原子性。
数据一致性
数据一致性是指每个操作都要合法,账户信息从一个合法状态到另一个合法状态。
高并发
大量用户同时请求服务时需要满足高并发,在大量请求下不崩溃。
高可靠
服务的可靠性必须要高,轻易地出现问题会导致巨大的经济损失。
RDBMS 发展
DBMS 数据模型
网状模型基于网状数据模型,反现实世界的信息关联。有存取效率高的优点。
DBMS 层次模型
层次数据管理是用树状结构描述实体之间的关系,查询效率高。
DBMS 关系模型
实体个实体的关系可以通过二维表结构表示,数据访问路径对用户透明。
RDBMS 技术
SQL 语句
SQL 语句贴近自然语言,面向集合的操作方式。
SQL 引擎
SQL 引擎用来解析SQL语句,以及优化SQL的执行顺序来优化效率。
存储引擎
存储引擎如MySQL对数据进行冷热分离,在LRU算法上进行优化来实现,一部分链表存储冷数据,一部分链表存储热数据。
事务引擎
事务引擎用于实现事务,MVCC实现读写互不阻塞,降低死锁概率,实现一致性读。
实践使用
大流量
在大流量下,单节点读写和单节点的容量都会成为瓶颈。
解决方案是将系统进行水平拆分,代理层进行分片路由。
流量突增
在流量上涨时,集群性能会出现无法满足要求的情况。解决方案是扩容DB节点数量,用影子表进行压测。
流量上涨同时会导致大量建联,负载变大,延迟上升。解决方案是业务侧预热连接池,代理侧预热连接池和代理侧支持连接队列。
高可用高可靠
使用多机房部署,实现机房级容灾,当服务器宕机时可以快速切换节点。