数据库

MySQL====>

逻辑架构-------->MySQL的逻辑架构可分为四层,包括连接层、服务层、引擎层和存储层

连接层: 负责处理客户端的连接以及权限的认证。

服务层: 定义有许多不同的模块,包括权限判断,SQL接口,SQL解析,SQL分析优化, 缓存查询的处理以及部分内置函数执行等。MySQL的查询语句在服务层内进行解析、优化、缓存以及内置函数的实现和存储。

引擎层: 负责MySQL中数据的存储和提取。MySQL中的服务器层不管理事务,事务是由存储引擎实现的。其中使用最为广泛的存储引擎为InnoDB,其它的引擎都不支持事务。

存储层: 负责将数据存储于设备的文件系统中。

 事务是MySQL区别于NoSQL的重要特征,是保证关系型数据库数据一致性的关键技术。事务可看作是对数据库操作的基本执行单元,可能包含一个或者多个SQL语句。这些语句在执行时,要么都执行,要么都不执行。事务的执行主要包括两个操作,提交和回滚。

原子性(Atomicity) :语句要么全执行,要么全不执行,是事务最核心的特性,事务本身就是以原子性来定义的;实现主要基于undo log日志实现的。

持久性(Durability  :保证事务提交后不会因为宕机等原因导致数据丢失;实现主要基于redo log日志。

隔离性(Isolation) :保证事务执行尽可能不受其他事务影响;InnoDB默认的隔离级别是RR,RR的实现主要基于锁机制、数据的隐藏列、undo log和类next-key lock机制。

一致性(Consistency) :事务追求的最终目标,一致性的实现既需要数据库层面的保障,也需要应用层面的保障。

锁机制----事务之间的隔离,是通过锁机制实现的。当一个事务需要对数据库中的某行数据进行修改时,需要先给数据加锁;加了锁的数据,其它事务是不运行操作的,只能等待当前事务提交或回滚将锁释放。

按照粒度划分:行锁、表锁、页锁按照使用方式划分:共享锁、排它锁按照思想划分:悲观锁、乐观锁

原文地址:https://www.cnblogs.com/KL2016/p/14609777.html