事务
询问当前是什么提交方式
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里面的存储信息可以直接打开,