7 - 27
1、 mysql 逻辑架构学习 逻辑架构的概念
mysql 上层连接:客户端和连接服务
完成: 连接处理, 授权认证,相关的安全方案, 有线程池的概念。
2、 并发控制和锁的概念
并发会 有可能产生 数据脏读: 多个操作修改 同一个数据时,产生脏数据。
解决并发问题的解决方案: 锁的机制
1、共享锁
2、排它锁(读锁和写锁)
select 时 加读锁, 其他的select 操作可以读取, 但是不能修改
update 时 加写锁, 其他的 操作不了。
锁的粒度:
1、 表锁: 锁表
2、 行锁: 锁行
这样确保 某个时间点的事务一致。
死锁: 两个或者多个事务在同 一个资源上 互相占用并请求锁定对方占用的资源,导致恶性循环的现象。
解决方案: 排它锁的事务进行回滚。
3、 事务的概念
事务就是一组原子性的SQL语句, 要么全部执行,要么都不执行。
事务的特性:
1、原子性: 所有操作 要么全部提交成功,要么全部失败回滚
2、一致性: 确保数据的唯一性, 一致性。
3、隔离型: 一个事务所操作的修改在 事务提交之前 对于其他的事务的不可见的!
4、永久性: 一旦事务提交, 对数据的操作修改 ,是永久保存到数据库中。
事务的隔离级别:
1、read uncommitted (读未提交) 事务中的修改即使未提交也是对其它事务可见
2、READ COMMITTED(读提交) 事务提交后所做的修改才会被另一个事务看见,可能产生一个事务中两次查询的结果不同
3、REPEATABLE READ(可重读):只有当前事务提交才能看见另一个事务的修改结果。解决了一个事务中两次查询的结果不同的问题
4、SERIALIZABLE(串行化):只有一个事务提交之后才会执行另一个事务。
五、 存储引擎 的概念