事务

一.事务含义

一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行。

2.事务概念

1.在mysql中的数据用各种不同的技术存储在文件(或内存)中。
2.通过show engines;来查看mysql支持的存储引擎。

二.事务的特点(ACID)

- A 原子性(Atomicity)

一个事务不可再分割,要么都执行要么都不执行

- C 一致性(Consistency)

一个事务执行会使数据从一个一致状态切换到另外一个一致状态

- I 隔离性(Isolation)

一个事务不受其他事务的干扰,多个事务互相隔离的

- D 持久性(Durability)

一个事务一旦提交,则会永久的改变数据库的数据.

三、事务的使用步骤 ★

了解:
隐式(自动)事务:
没有明显的开启和结束,本身就是一条事务可以自动提交,比如insert、update、delete
显式事务:具有明显的开启和结束

使用显式事务:
①开启事务
set autocommit=0;
start transaction;#可以省略

②编写一组逻辑sql语句
注意:sql语句支持的是insert、update、delete

设置回滚点:
savepoint 回滚点名;

③结束事务
提交:commit;
回滚:rollback;
回滚到指定的地方:rollback to 回滚点名;

四、并发事务

1、事务的并发问题是如何发生的?
多个事务 同时 操作 同一个数据库的相同数据时
2、并发问题都有哪些?
脏读:一个事务读取了其他事务还没有提交的数据,读到的是其他事务“更新”的数据
不可重复读:一个事务多次读取,结果不一样
幻读:一个事务读取了其他事务还没有提交的数据,只是读到的是 其他事务“插入”的数据
3、如何解决并发问题
通过设置隔离级别来解决并发问题
4、隔离级别


image.png

几种事务隔离级别会出现问题汇总

级别 脏读 不可重复读 幻读
read uncommitted:读未提交
read committed:读已提交 ×
repeatable read:可重复读 × ×
serializable:串行化 × × ×

mysql中默认 第三个隔离级别 repeatable read
oracle中默认第二个隔离级别 read committed

例子1.演示事务的使用步骤
#开启事务
SET autocommit=0;
START TRANSACTION;
#编写一组事务的语句
UPDATE account SET balance = 1000 WHERE username='张无忌';
UPDATE account SET balance = 1000 WHERE username='赵敏';

#结束事务
ROLLBACK;#回滚
#commit;提交
SELECT * FROM account;
演示事务对于delete和truncate的处理的区别

delete可回滚truncate不可回滚

SET autocommit=0;
START TRANSACTION;

DELETE FROM account;
ROLLBACK;

演示savepoint 的使用
SET autocommit=0;
START TRANSACTION;
DELETE FROM account WHERE id=25;
SAVEPOINT a;#设置保存点
DELETE FROM account WHERE id=28;
ROLLBACK TO a;#回滚到保存点

SELECT * FROM account;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 导语:计算机硬件在飞速发展,数据规模在急速膨胀,但是数据库仍然使用是十年以前的架构体系,WiredTiger 尝试...
    isgiker阅读 3,589评论 0 7
  • 一、事务 1、事务四要素:ACID 对于事务,我之前的理解是很粗糙的,不就是为了保证操作的原子性么?一般订单系统或...
    张伟科阅读 1,531评论 0 5
  • 这篇文章能够阐述清楚跟数据库相关的四个概念:事务、数据库读现象、隔离级别、锁机制 一、事务 先来看下百度百科对数据...
    a6fc544968bb阅读 553评论 0 1
  • 低素质的老男人不能接触 发现一个问题,现在五十多岁往上的老年人,特别多。其中低素质的也特别多。 ...
    越长越漂亮的美女阅读 549评论 0 1
  • 张清的日精进第209天 从昨天到今天下午,因为一件突发事件,医院院长,主任,值班护士全都一直在备战状态,没能好好在...
    kiyoi2017阅读 117评论 0 1

友情链接更多精彩内容