2023/10/26MySQL学习

事务

2023/10/26MySQL学习_第1张图片

2023/10/26MySQL学习_第2张图片

询问当前是什么提交方式

1代表默认提交,0代表手动提交

2023/10/26MySQL学习_第3张图片

将事务设为手动提交

2023/10/26MySQL学习_第4张图片

将事务设置为手动提交后,mysql语句只会执行,但不会对原本表中数据进行更改,

只有执行以下两个语句之一,才会继续进行

commit完成原本操作,更改数据

rollback取消原来事务,不会进行任何更改

2023/10/26MySQL学习_第5张图片

如果使用开启事务的操作,那么和上面把事务提交设置为手动提交是一样的,

不会对表中原有数据进行更改,

只有执行以下两个语句之一,才会继续进行

2023/10/26MySQL学习_第6张图片

2023/10/26MySQL学习_第7张图片

多个事务执行出现的问题

2023/10/26MySQL学习_第8张图片

mysql默认隔离级别就是repeatable read

从上到下隔离等级增大,但是性能依次降低

2023/10/26MySQL学习_第9张图片

查看隔离级别

2023/10/26MySQL学习_第10张图片

session设置当前窗口的隔离等级

global设置所有窗口的隔离等级

2023/10/26MySQL学习_第11张图片

脏读案例,事务2更改数据未提交,事务1前后读取到不同的数据

如果提高一级限制条件,如果事务2未提交,那么事务1前后读取数据相同

2023/10/26MySQL学习_第12张图片

不可重复读案例,事务2更改数据并提交后,事务1前后读取到不同数据

如果提高一级限制条件,如果事务2已经提交,那么事务1读取到的数据相同

除非事务1也提交了,那么之后读取到的数据,应该是事务2更改的数据

2023/10/26MySQL学习_第13张图片

幻读案例,事务2插入数据并且提交,如果事务1在同一个位置插入数据,是无法插入的,会显示已被占用,但是查询那个位置的数据,又会显示无数据

如果提高一个限制等级,事务1,事务2都开始,事务2执行插入操作,会一直等待闪烁,直到事务1提交事务,如果事务1也进行了同位置的插入操作,那么事务2执行的操作就会报错

2023/10/26MySQL学习_第14张图片

2023/10/26MySQL学习_第15张图片

2023/10/26MySQL学习_第16张图片

mysql默认存储引擎InooDB

auto_increament = 5,表中下一个数据存储id

default charset = utf8mb4 建表默认字符集

COLLATE=utf8mb4_0900_ai_ci  排序方式

2023/10/26MySQL学习_第17张图片

2023/10/26MySQL学习_第18张图片

2023/10/26MySQL学习_第19张图片

2023/10/26MySQL学习_第20张图片

2023/10/26MySQL学习_第21张图片

sdi里面的存储信息可以直接打开,

2023/10/26MySQL学习_第22张图片

2023/10/26MySQL学习_第23张图片

2023/10/26MySQL学习_第24张图片

你可能感兴趣的:(学习)