MySQL的四种事务隔离级别

    科技2024-08-14  31

    事务的四大特性

        1.原子性:即一个事务是一个整体,不可分割。

        2.一致性:事务在开始和结束后,能保证数据库完整性约束的正确性即数据的完整性。

        3.隔离性:事务之间完全隔离。不能同一时间操作同一数据表

        4.持久性:一旦事务完成,无法回滚,对数据操作是永久性的

    事务的并发问题

        1.脏读:一个事务读取另一个事务还没有提交的数据称为脏读。也就是B事务还没有提交,A事务已经读取B修改的数据。如果B事务因为某种原因造成回滚,那么A读取的数据完全无效

        2.不可重复读:同一个事务中,多次读出的同一数据不相同(修改造成)

        3.幻读:事务A检查数据库,发现并没有数据。事务B此时添加了一条信息,事务A再次查询时,发现已经有数据了,好像发生了幻觉(针对添加删除操作)

    事务是什么时候开始的?

       并不是 begin/ start   transaction 执行完就开始了,     而是执行完begin  transaction后的第一条sql语句执行完成,事务才开始

       事务的四种隔离级别

    隔离级别脏读       不可重复度幻读     读未提交(read-uncommitted)是是是不可重复读(read-committed)否是是可重复读(repeatable-read)否否是可串行化(serializable)否否否

    MySQL版本:8.0.15

    命令

    1.查看当前的事务隔离级别

    SELECT @@transaction_isolation;

    2.设置事务隔离级别

    set session transaction isolation level read uncommitted;

     

    事务隔离级别为读提交(read committed  不可重复读,第二级别)时,写数据只会锁住相应的行

    事务隔离级别为串行化时(serializable ,第四级别),读写数据都会锁住整张表

    隔离级别越高,越能保证数据的完整性和一致性,但是对并发性能的影响也越大。

     

    看了,我觉得你会了。来实际操作一下子

     

    Processed: 0.010, SQL: 8