2023/10/26MySQL学习

事务

询问当前是什么提交方式

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

将事务设为手动提交

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

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

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

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

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

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

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

多个事务执行出现的问题

mysql默认隔离级别就是repeatable read

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

查看隔离级别

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

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

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

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

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

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

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

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

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

mysql默认存储引擎InooDB

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

default charset = utf8mb4 建表默认字符集

COLLATE=utf8mb4_0900_ai_ci  排序方式

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

猜你喜欢

转载自blog.csdn.net/m0_64158084/article/details/134054107