1.read uncommitted(读取未提交)
以员工张三,经理李四为例,张三的薪资为5000。李四给张三升薪到7000,李四做了update操作,但是没有做commit操作,即没有进行事务提交,但是张三那边可以看到修改后面的数据7000。
2.read committed(读取提交)
李四给张三做了update操作,没有提交事务,这时张三那边看到的薪资还是5000。只有李四提交事务后,张三那边select查看时,才能看到修改后的7000。
3.repeatable read (重复读)
李四给张三做了update操作,提交了事务,张三那边查询结果还是5000,需要张三这边也要提交事务(commit;),再查询时结果才是7000。
4.serializable (序列化/有的地方叫串行化)
这种隔离级别最严格,与第一种隔离级别形成两个极端,在实际开发中都不太常用。李四一个操作窗口,张三一个操作窗口。在两边都开启了事务之后,李四这边对数据进行增删改查,张三那边无法进行操作,如图所示,在回车之后没有反应,不出结果,时间长了,需要重新开启事务。
张三那边窗口想要进行操作,必须李四提交事务,张三那边才能进行操作。
在李四了提交了事务,李四想要重新操作,也必须等张三那边提交事务才行。
这中方法在实际应用中效率比较低。
1.read uncommitted(读取未提交)
以员工张三,经理李四为例,张三的薪资为5000。李四给张三升薪到7000,李四做了update操作,但是没有做commit操作,即没有进行事务提交,但是张三那边可以看到修改后面的数据7000。
2.read committed(读取提交)
李四给张三做了update操作,没有提交事务,这时张三那边看到的薪资还是5000。只有李四提交事务后,张三那边select查看时,才能看到修改后的7000。
3.repeatable read (重复读)
李四给张三做了update操作,提交了事务,张三那边查询结果还是5000,需要张三这边也要提交事务(commit;),再查询时结果才是7000。
4.serializable (序列化/有的地方叫串行化)
这种隔离级别最严格,与第一种隔离级别形成两个极端,在实际开发中都不太常用。李四一个操作窗口,张三一个操作窗口。在两边都开启了事务之后,李四这边对数据进行增删改查,张三那边无法进行操作,如图所示,在回车之后没有反应,不出结果,时间长了,需要重新开启事务。
张三那边窗口想要进行操作,必须李四提交事务,张三那边才能进行操作。
在李四了提交了事务,李四想要重新操作,也必须等张三那边提交事务才行。
这中方法在实际应用中效率比较低。
1.read uncommitted(读取未提交)
以员工张三,经理李四为例,张三的薪资为5000。李四给张三升薪到7000,李四做了update操作,但是没有做commit操作,即没有进行事务提交,但是张三那边可以看到修改后面的数据7000。
2.read committed(读取提交)
李四给张三做了update操作,没有提交事务,这时张三那边看到的薪资还是5000。只有李四提交事务后,张三那边select查看时,才能看到修改后的7000。
3.repeatable read (重复读)
李四给张三做了update操作,提交了事务,张三那边查询结果还是5000,需要张三这边也要提交事务(commit;),再查询时结果才是7000。
4.serializable (序列化/有的地方叫串行化)
这种隔离级别最严格,与第一种隔离级别形成两个极端,在实际开发中都不太常用。李四一个操作窗口,张三一个操作窗口。在两边都开启了事务之后,李四这边对数据进行增删改查,张三那边无法进行操作,如图所示,在回车之后没有反应,不出结果,时间长了,需要重新开启事务。
张三那边窗口想要进行操作,必须李四提交事务,张三那边才能进行操作。
在李四了提交了事务,李四想要重新操作,也必须等张三那边提交事务才行。
这中方法在实际应用中效率比较低。
关注我,了解查看和修改MySQL事务隔离级别的方法。