(一) 事务并发可导致的问题
事务并发大致可以导致一下几个问题:lost update、dirty read、uprepeatable read和phantom read。uprepeatable read还有个特例就是second lost updates problem,即是不同事务中后面的更新操作会覆盖之前事务的更新操作。uprepeatable read和phantom read的区别在于uprepeatable read是有数据更新造成的,而phantom read则是由于新插入数据造成的。
(二)数据库系统的锁的基本原理
数据库本身会提供锁的机制:共享锁、独占锁。select会使事务获取共享锁而delete、insert、update则会使事务获取独占锁。两个事务同时获取共享锁然后执行更新操作即都想获取独占锁时,便会产生死锁。这种锁机制是数据库系统自带的,它会根据事务执行的sql语句,来自动为数据源上锁,它有以下几种颗粒度:
1. 数据库级锁:锁定整个数据库;
2. 表级锁: 锁定一张表;
3. 区域级锁: 锁定数据库的特定区域;
4. 页面级锁: 锁定特定的页面;
5. 键值级锁: 锁定表中带有索引的一行数据;
6. 行级锁: 锁定表中单行数据。
(三) 事务隔离级别
锁控制并发的效果好,但是尽量不要显式的为数据库加锁,而应该首先让数据库自动管理锁。数据库的隔离级别提供了很好的支持。它有四种级别:
1. serializable
2. repeatable read
3. read commited
4. read uncommited
在mysql里可以这样设置隔离级别:
// 单个链接
set transaction isolation level read commited;
// 数据库全局
set global transaction isolation level read commited;
hibernate也可以在配置文件里设置:
hibernate.connection.isolation=2
2 表示 read commited级别,其他的为:1 - read uncommitted、4 - repeatable read、8 - serialized
分享到:
相关推荐
内容概要:数据库事务并发与事务加锁; 使用场景:本资源主要用于辅助系统分析师的软考; 适用人群:系分备考者、产品、开发、测试等,也适用于有相关知识点学习兴趣的小伙伴; 其他:思维导图的方式介绍知识点,...
数据库的并发控制 数据库并发控制的含义 事务 并发控制的必要性 基于封锁的并发控制技术 基于时间戳的并发控制技术
8.1 并发控制概述 8.2 封锁 8.3 封锁协议 8.4 活锁和死锁 8.5 并发调度的可串行性 8.6 两段锁协议 8.7 封锁的粒度 8.8 Oracle的并发控制 8.9 小结
数据库处理的经典资料: 叫你处理事务 如何并发处理 瞧瞧吧 机不可失哟
这是一个关于银行的数据库的处理,模仿的是从账户1转账给...那就需要用到事务,如果没有一起执行,就回滚。这个代码比较简单,希望对大家有帮助,自己建立一个数据库bank,在里面建立一个表Account,两属性:Id,money.
讲述了数据库中的并发控制,包括事务处理,加锁机制,以及恢复,日志记录
数据库思维导图——并发控制 并发控制 多事务执行方式 (1)事务串行执行 每个时刻只有一个事务运行,其他事务必须等到这个事务结束以后方能运行 不能充分利用系统资源,发挥数据库共享资源的...事务并发执行带来的问题
一些常用的关于数据库并发操作、串行调度的习题及其答案。
8、数据库安全性管理、数据库事务及并发控制.sql
实时事务根据其功能分为三类:数据接收事务,控制事务和数据处理事务.这三类事务的并发性和原子性是不同的,针对这三类不同的事务采用不同的并发控制机制,提出了实时数据库事务并发控制的两种方法。
本文提出了一个包含Redis的键值NoSQL数据库的事务模型,以使用户能够以ACID(原子性,一致性,隔离性和持久性)方式访问数据,该模型被生动地称为冲浪并发事务模型。 详细描述了体系结构,重要功能和实现原理。 还...
数据库并发控制及SQL 包含内容包括:数据库并发控制及SQL Server的并发控制机制 事务及并发控制的基本概念 封锁机制 SQL Server的并发控制机制 等等
当用户对数据库并发访问时,为了确保事务完整性和数据库一致性,需要使用锁定。事务和锁是两个紧密联系的概念。通过事务、批和锁的使用,还可以监测系统,以及优化物理数据库。作业是一种多步执行的任务。 本章主要...
数据库中的事务管理,恢复以及并发控制技术的概述
事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。SQL Server提供了几种自动的可以通过编程...当用户对数据库并发访问时,为了确保事务完整性和数据库一致性,需要使用锁定
33丨MySQL调优之事务:高并发场景下的数据库事务调优.html
事务,并发,隔离级别,JTA 事务,EJB,BMT,CMT,Spring,异常处理 异常处理还没有整理。 内容80%抄袭
该文档主要浅谈了数据库事务处理和并发控制的技术,可以作为初学者的参考文档
掌握事务的概念及性质 掌握数据库恢复的基本技术和策略 1、了解并发操作可能产生的数据不一致性 2、掌握并发控制的技术:封锁机制、三级封锁协议、 活锁的避免、死锁的预防、诊断及解除 3、掌握并发调度的正确性...