数据库并发控制技术

简介: 数据库并发控制技术

事务是并发控制的基本单位。并发是指多个事务同时执行,这样就有可能破坏事务的ACID特性,DBMS的并发控制技术就是对并发操作进行正确调度以保证事务的隔离性和一致性。

举个列子,A,B同时买票:二者同时读到票共16张,A买了票,票减一为15;B买了票,但由于先前读的票数是16,再执行票减一为15。

实质上这样A进行的操作就被覆盖了,与实际不符。

上面数据不一致的原因主要在于并发操作破坏了数据的隔离性,并发控制就是要用正确的方式调度并发操作,保证事务隔离性从而保证一致性,主要是通过封锁技术。


封锁


封锁是指某事务处理某数据时进行加锁,在该事务未释放锁时其他事务不可对该数据进行更新。

基本封锁类型有:

排他锁(X/写锁):事务加上X锁后未释放任何事务不可再加锁。

共享锁(S/读锁):事务加上S锁后未释放其他事务最多只能加S锁。

以上两种锁可以保证隔离性,但也会引发一些问题,比如活锁和死锁。

活锁是指一个事务对一个数据的封锁申请一直在等待(因为其他事务也在申请),这只需要按先来先服务的策略即可。

死锁就比较麻烦,产生死锁的原因是多个事务都已经封锁了一些数据对象,然后又同时请求为其他事务封锁的数据对象加锁,从而出现死等待。这样问题一般通过预防或者解除等操作解决。预防一般有一次封锁法和顺序封锁法,实际上,数据库用的更多是诊断和解除的操作。诊断有超时法(通过设定时间判断)和等待图法(通过回路判断),解除代价最小的是撤销。


并发调度的可串行性


我们会有疑问:

什么样的并发调度是正确的?

可串行化的调度是正确的。

什么样的调度又是可串行化的调度呢?

充分条件是指其可冲突可串行化调度。

那什么是冲突可串行化调度?

首先明白,冲突操作是指不同事务对同一个数据的读写和写写操作,如果一个调度在保证冲突操作次序不变的条件下交换两个事务的不冲突操作得另一个调度,若得的调度结果一致,认为其为冲突可串行化调度,该调度也是可串行化调度。

介绍完了这些,可以了解通过在加锁上面加一些封锁协议,可以保证可串行化调度,比如两段锁协议(选均加锁,再均解锁),不过注意,这也是充分条件。

相关文章
|
11天前
|
监控 Java 关系型数据库
HikariCP 高性能数据库连接池技术详解与实践指南
本文档全面介绍 HikariCP 高性能数据库连接池的核心概念、架构设计和实践应用。作为目前性能最优异的 Java 数据库连接池实现,HikariCP 以其轻量级、高性能和可靠性著称,已成为 Spring Boot 等主流框架的默认连接池选择。本文将深入探讨其连接管理机制、性能优化策略、监控配置以及与各种框架的集成方式,帮助开发者构建高性能的数据访问层。
66 8
|
10天前
|
监控 Java 关系型数据库
HikariCP 高性能数据库连接池技术详解与实践指南
本文档全面介绍 HikariCP 高性能数据库连接池的核心概念、架构设计和实践应用。作为目前性能最优异的 Java 数据库连接池实现,HikariCP 以其轻量级、高性能和可靠性著称,已成为 Spring Boot 等主流框架的默认连接池选择。本文将深入探讨其连接管理机制、性能优化策略、监控配置以及与各种框架的集成方式,帮助开发者构建高性能的数据访问层。
53 1
|
6月前
|
Cloud Native 关系型数据库 分布式数据库
|
7月前
|
存储 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:单机性能优化篇
阿里云PolarDB云原生数据库在TPC-C基准测试中,以20.55亿tpmC的成绩打破性能与性价比世界纪录。此外,国产轻量版PolarDB已上线,提供更具性价比的选择。
|
6月前
|
存储 关系型数据库 分布式数据库
|
7月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
阿里云PolarDB云原生数据库在TPC-C基准测试中以20.55亿tpmC的成绩刷新世界纪录,展现卓越性能与性价比。其轻量版满足国产化需求,兼具高性能与低成本,适用于多种场景,推动数据库技术革新与发展。
|
23天前
|
SQL 数据管理 BI
数据库操作三基石:DDL、DML、DQL 技术入门指南
本文围绕数据库操作核心语言 DDL、DML、DQL 展开入门讲解。DDL 作为 “结构建筑师”,通过CREATE(建库 / 表)、ALTER(修改表)、DROP(删除)等命令定义数据库结构;DML 作为 “数据管理员”,以INSERT(插入)、UPDATE(更新)、DELETE(删除)操作数据表记录,需搭配WHERE条件避免误操作;DQL 作为 “数据检索师”,通过SELECT结合WHERE、ORDER BY、LIMIT等子句实现数据查询与统计。三者相辅相成,是数据库操作的基础,使用时需注意 DDL 的不可撤销性、DML 的条件约束及 DQL 的效率优化,为数据库学习与实践奠定基础。
|
6月前
|
存储 关系型数据库 分布式数据库
|
2月前
|
缓存 关系型数据库 MySQL
MySQL数据库性能调优:实用技术与策略
通过秉持以上的策略实施具体的优化措施,可以确保MySQL数据库的高效稳定运行。务必结合具体情况,动态调整优化策略,才能充分发挥数据库的性能潜力。
116 0
|
4月前
|
存储 人工智能 关系型数据库
诚邀您参加《智启云存:AI时代数据库RDS存储新突破》线上闭门技术沙龙!
诚邀您参加6月11日(周三)14:00在线上举行的《智启云存:AI时代数据库RDS存储新突破》闭门活动。免费报名并有机会获得精美礼品,快来报名吧:https://hd.aliyun.com/form/6162

热门文章

最新文章