事务
是什么
定义
数据库管理系统执行过程中的一个逻辑单位,它由一系列操作组成,这些操作要么全部执行成功,要么全部不执行,保证数据的一致性和完整性。
分类和组成
事务提交的两种方式
1.自动提交:
一条DML(增删改)语句,会自动提交一次。 – MySQL就是默认自动提交的。
2.手动提交:
需要先开启事务再提交。 – Oracle就是默认手动提交的。
事物的隔离级别
1.read uncommitted:读未提交
存在的问题:脏读、不可重复读、幻读
2.read committed:读已经提交
存在的问题:不可重复读、幻读 – 隔离级别从低到高,但是效率越来越低
3.repeatable read :可重复读
存在的问题:幻读
4.serializeable:可串行化
可以解决所有的问题
特点
1.原子性:是不可分割的最小操作单位,要么同时成功要么,同时失败。
2.持久性:当事务提交或者回滚后,数据库都会持久化的保存数据。
3.隔离性:多个事务操作之间相互独立。
4.一致性:事务操作前后,数据总量不变。
怎么做
事务的操作
1.开启事务
start transaction;
2.回滚
rollback;
3.提交
commit;
事务的默认提交方式
查看
select @@autocommit; – 结果中,1代表自动提交,0代表手动提交。
修改
set @@autocommit = 0;
事务的隔离级别
查询
select @@tx_isolation;
修改
set global transaction isolation level 级别字符串;
为什么
事务的目的:
事务的隔离级别的目的:是解决脏读、不可重复读、幻读的问题。
相关的知识点
1.脏读:一个事务中,读取到另一个事务中还没来得及提交的数据。
2.不可重复读:同一个事务中,两次读到的数据不一样。
3.幻读:一个事务操作(DML)数据表中所有数据,另一个表中添加了一条数据,则第一个事务查询不到自己的修改。
是什么
定义
数据库管理系统执行过程中的一个逻辑单位,它由一系列操作组成,这些操作要么全部执行成功,要么全部不执行,保证数据的一致性和完整性。
分类和组成
事务提交的两种方式
1.自动提交:
一条DML(增删改)语句,会自动提交一次。 – MySQL就是默认自动提交的。
2.手动提交:
需要先开启事务再提交。 – Oracle就是默认手动提交的。
事物的隔离级别
1.read uncommitted:读未提交
存在的问题:脏读、不可重复读、幻读
2.read committed:读已经提交
存在的问题:不可重复读、幻读 – 隔离级别从低到高,但是效率越来越低
3.repeatable read :可重复读
存在的问题:幻读
4.serializeable:可串行化
可以解决所有的问题
特点
1.原子性:是不可分割的最小操作单位,要么同时成功要么,同时失败。
2.持久性:当事务提交或者回滚后,数据库都会持久化的保存数据。
3.隔离性:多个事务操作之间相互独立。
4.一致性:事务操作前后,数据总量不变。
怎么做
事务的操作
1.开启事务
start transaction;
2.回滚
rollback;
3.提交
commit;
事务的默认提交方式
查看
select @@autocommit; – 结果中,1代表自动提交,0代表手动提交。
修改
set @@autocommit = 0;
事务的隔离级别
查询
select @@tx_isolation;
修改
set global transaction isolation level 级别字符串;
为什么
事务的目的:
事务的隔离级别的目的:是解决脏读、不可重复读、幻读的问题。
相关的知识点
1.脏读:一个事务中,读取到另一个事务中还没来得及提交的数据。
2.不可重复读:同一个事务中,两次读到的数据不一样。
3.幻读:一个事务操作(DML)数据表中所有数据,另一个表中添加了一条数据,则第一个事务查询不到自己的修改。事务
是什么
定义
数据库管理系统执行过程中的一个逻辑单位,它由一系列操作组成,这些操作要么全部执行成功,要么全部不执行,保证数据的一致性和完整性。
分类和组成
事务提交的两种方式
1.自动提交:
一条DML(增删改)语句,会自动提交一次。 – MySQL就是默认自动提交的。
2.手动提交:
需要先开启事务再提交。 – Oracle就是默认手动提交的。
事物的隔离级别
1.read uncommitted:读未提交
存在的问题:脏读、不可重复读、幻读
2.read committed:读已经提交
存在的问题:不可重复读、幻读 – 隔离级别从低到高,但是效率越来越低
3.repeatable read :可重复读
存在的问题:幻读
4.serializeable:可串行化
可以解决所有的问题
特点
1.原子性:是不可分割的最小操作单位,要么同时成功要么,同时失败。
2.持久性:当事务提交或者回滚后,数据库都会持久化的保存数据。
3.隔离性:多个事务操作之间相互独立。
4.一致性:事务操作前后,数据总量不变。
怎么做
事务的操作
1.开启事务
start transaction;
2.回滚
rollback;
3.提交
commit;
事务的默认提交方式
查看
select @@autocommit; – 结果中,1代表自动提交,0代表手动提交。
修改
set @@autocommit = 0;
事务的隔离级别
查询
select @@tx_isolation;
修改
set global transaction isolation level 级别字符串;
为什么
事务的目的:
事务的隔离级别的目的:是解决脏读、不可重复读、幻读的问题。
相关的知识点
1.脏读:一个事务中,读取到另一个事务中还没来得及提交的数据。
2.不可重复读:同一个事务中,两次读到的数据不一样。
3.幻读:一个事务操作(DML)数据表中所有数据,另一个表中添加了一条数据,则第一个事务查询不到自己的修改。
是什么
定义
数据库管理系统执行过程中的一个逻辑单位,它由一系列操作组成,这些操作要么全部执行成功,要么全部不执行,保证数据的一致性和完整性。
分类和组成
事务提交的两种方式
1.自动提交:
一条DML(增删改)语句,会自动提交一次。 – MySQL就是默认自动提交的。
2.手动提交:
需要先开启事务再提交。 – Oracle就是默认手动提交的。
事物的隔离级别
1.read uncommitted:读未提交
存在的问题:脏读、不可重复读、幻读
2.read committed:读已经提交
存在的问题:不可重复读、幻读 – 隔离级别从低到高,但是效率越来越低
3.repeatable read :可重复读
存在的问题:幻读
4.serializeable:可串行化
可以解决所有的问题
特点
1.原子性:是不可分割的最小操作单位,要么同时成功要么,同时失败。
2.持久性:当事务提交或者回滚后,数据库都会持久化的保存数据。
3.隔离性:多个事务操作之间相互独立。
4.一致性:事务操作前后,数据总量不变。
怎么做
事务的操作
1.开启事务
start transaction;
2.回滚
rollback;
3.提交
commit;
事务的默认提交方式
查看
select @@autocommit; – 结果中,1代表自动提交,0代表手动提交。
修改
set @@autocommit = 0;
事务的隔离级别
查询
select @@tx_isolation;
修改
set global transaction isolation level 级别字符串;
为什么
事务的目的:
事务的隔离级别的目的:是解决脏读、不可重复读、幻读的问题。
相关的知识点
1.脏读:一个事务中,读取到另一个事务中还没来得及提交的数据。
2.不可重复读:同一个事务中,两次读到的数据不一样。
3.幻读:一个事务操作(DML)数据表中所有数据,另一个表中添加了一条数据,则第一个事务查询不到自己的修改。