用户、会话及事务控制-------并发使用数据环境

一、

1.事务是作为一个整体提交给数据库用于处理的工作单元(一个数据库的会话可能由一个或多个事务组成)。换种说法,事务是指一条或多条查询。在数据库中,这些查询作为一个整体,全部执行或全部不执行。

2.并发的事务的两种运行方式

A.串行(serially)。先后顺序。

B.交叉(interleaved)。轮流交替运行。(不明白)

3.不明白的例子:顾客购买同种图书,见《SQL语言详解》第3版P184。

相关概念:丢失更新(lost upda)

4.锁定

共享锁:允许多个事务查看数据库中的数据,但不允许在共享锁准备就绪时修改数据。

排他锁

锁的粒度:放置锁定的数据库元素的大小。粒度越小,能够锁定的”片“越多,同时能够支持的数据库使用的并发越多。(不懂)

两阶段锁定:当事务获取数据时,数据库管理系统会在相关数据上放置一个共享锁;仅在该事务需要修改数据时,才会将锁升级为排他锁。这就叫“两阶段锁定“。

我对共享锁的理解,正确性有待检测。

CMS中,存储文章数据的table,假设,后台有一个管理文章的列表,前台也有文章列表,前后台都从该table获取,前后台对该table的读取是两个不同的事务吗?若是,那么,该table是否被加了共享锁?当admin在后台删除或修改文章时,对该table的锁会自动升级为排他锁吗?若升级或人为加了排他锁,在同一时间,前台的文章列表是否必须等待后台对该table的事务结束了才能读取到文章数据?

二、隔离级别(完全不理解)

什么叫隔离?我这样理解,某事务中的数据库元素不能被被其他事务任意访问,但是可以被有条件地访问,这些条件,就是隔离级别。

1.四种事务隔离级别:

序列化(Serializable)

可重复读取(Repeatable Read):幻象读取(Phantom Read)

授权读取(Read Committed):不可重复读取(Nonrepeatable Read)

未授权读取(Read Uncommitted):脏读(dirty read)

2.设置隔离等级的语法

SET TRANSACTION

         ISOLATION LEVEL isolation_level

例子:

SET TRANSACTION

        ISOLATION LEVEL REPEATABLE READ;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值