事务

是什么

定义

数据库管理系统执行过程中的一个逻辑单位,它由一系列操作组成,这些操作要么全部执行成功,要么全部不执行,保证数据的一致性和完整性。

分类和组成

事务提交的两种方式

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)数据表中所有数据,另一个表中添加了一条数据,则第一个事务查询不到自己的修改。