工程建设采购有哪些网站,网站没有做301定向,做社交网站多少钱,连云港网站建设推广1. 并发控制概述
并发控制是数据库系统处理多个事务同时执行时#xff0c;保证数据一致性和事务隔离性的关键技术。
1.1并发操作的特点
数据库系统允许多个用户并发访问。典型应用场景#xff1a; 飞机订票系统银行数据库系统网上购物系统
1.2并发操作可能带来的问题
并…1. 并发控制概述
并发控制是数据库系统处理多个事务同时执行时保证数据一致性和事务隔离性的关键技术。
1.1并发操作的特点
数据库系统允许多个用户并发访问。典型应用场景 飞机订票系统银行数据库系统网上购物系统
1.2并发操作可能带来的问题
并发事务可能导致数据的不一致性 丢失修改 多个事务同时修改同一数据一个事务的结果可能覆盖另一个事务的结果。例子两个售票点同时读取和修改机票余额实际减少两张票但余额只减少了一张票。 脏读 一个事务读到了另一个未提交事务的修改导致数据不一致。 不可重复读 一个事务读取某数据后另一个事务对其进行了修改导致再次读取时数据不同。 幻读 一个事务按条件查询得到的数据记录集另一个事务插入或删除了相关记录导致查询结果不同。
1.3并发控制的任务
防止数据不一致保证 事务的隔离性数据库的一致性 2. 事务的隔离级别
SQL标准定义了四种隔离级别用来防止并发导致的数据不一致。
2.1隔离级别由低到高依次为 读未提交 允许读取未提交事务的数据。可能导致脏读、不可重复读和幻读。 读已提交 只能读取已提交事务的数据。避免了脏读但仍可能出现不可重复读和幻读。 可重复读 一个事务开始后其他事务不能修改它已读取的数据。避免了脏读和不可重复读但不能避免幻读。MySQL默认级别。 可串行化 最高隔离级别所有事务按顺序执行。避免了所有问题但性能较低。 3. 封锁
封锁是实现并发控制的核心技术。
3.1基本封锁类型 共享锁S锁 允许多个事务读取同一数据但不允许修改。适用于“读”操作。 排它锁X锁 一个事务对数据加X锁后其他事务不能再读或修改。适用于“写”操作。
3.2锁的相容性矩阵
S锁X锁S锁YNX锁NN
Y相容多个事务可以同时加锁。N不相容必须等待锁释放。 4. 封锁协议
封锁协议是使用S锁和X锁时的规则。
4.1三级封锁协议 一级封锁协议 修改数据前必须加X锁事务结束后释放。防止丢失修改。 二级封锁协议 读取数据前加S锁修改数据前加X锁事务结束后释放。防止脏读。 三级封锁协议 读、写前分别加S锁和X锁事务结束后释放。防止不可重复读。 5. 活锁与死锁
5.1活锁
一个事务因优先级低总是得不到锁处于无限等待状态。解决方法先来先服务。
5.2死锁
两个事务循环等待对方持有的锁。解决方法 超时法等待超时后回滚事务。等待图法通过检测图中的循环回路识别死锁。 6. 并发调度的可串行性
6.1可串行化调度
并发事务的执行结果与某种顺序的串行执行结果相同。可串行性是判断并发调度正确性的标准。
6.2两段锁协议2PL
两阶段锁定 扩展阶段只加锁不释放。收缩阶段只释放锁不加锁。优点保证调度的可串行化。缺点可能导致死锁。 7. 封锁粒度
7.1粒度的选择
粒度大减少开销但降低并发性。粒度小提高并发性但增加系统开销。
7.2多粒度封锁
支持同时对数据库的不同层级加锁如表、元组等。引入意向锁IS锁、IX锁 提高加锁效率避免冲突。 8. 多版本并发控制MVCC
8.1特点
维护数据的多个版本避免读写冲突。适用场景事务读写并发较高的情况下。优点提高性能减少事务等待。缺点产生大量无效版本。
8.2 改进方法MV2PL
读事务使用多版本机制。写事务使用两阶段锁协议。引入验证锁Certify-Lock在事务提交时验证数据一致性。 9.总结并发控制技术 主要技术 封锁S锁、X锁时间戳方法乐观方法多版本并发控制MVCC 核心目标 保证事务隔离性和数据一致性。 优化方向 平衡隔离级别与性能需求。选择适合应用场景的并发控制机制。
关于更详细的笔记等考完试再出哈。