zoukankan      html  css  js  c++  java
  • MYSQL-事务中的锁与隔离级别

    1.什么是锁

    “锁”顾名思义就是锁定的意思。
    

    2.作用

    在事务ACID特性过程中,“锁”和“隔离级别”一起来实现“I”隔离性的作用。
    

    3.锁的类别

    排他锁:保证在多事务操作时,数据的一致性。(在我修改数据时,其他人不得修改)
    共享锁:保证在多事务工作期间,数据查询时不会被阻塞。
    
    乐观锁:多实务操作时,数据可以同时修改,谁先提交,以谁为准
    悲观锁:多实务操作时,数据只有一个人可以修改
    

    4.多版本并发控制

    1.只阻塞修改类操作(排他锁),不阻塞查询类操作(共享锁)
    2.乐观锁的机制(谁先提交谁为准)
    

    5.锁的粒度

    1.MyIsam:表级锁
    2.Innodb:行级锁
    

    事务中的隔离级别

    1.四种隔离级别

    1.RU级别:READ UNCOMMITTED(独立提交):未提交读,允许事务查看其他事务所进行的未提交更改
    
    2.RC级别:READ COMMITTED:允许事务查看其他事务所进行的已提交更改,查看不需要重新记入数据库
    
    3.RR级别:REPEATABLE READ:允许事务查看其他事务所进行的已提交更改,查看数据需要重新进入数据库(InnoDB 的默认级别)
    
    4.串行化:SERIALIZABLE:将一个事务的结果与其他事务完全隔离
    

    2.查看隔离级别

    #查看隔离级别
    mysql> show variables like '%iso%';
    

    3.设置隔离级别

    1.设置RU级别

    [root@db03 ~]# vim /etc/my.cnf
    transaction_isolation=read-uncommit
    

    2.设置RC级别

    [root@db03 ~]# vim /etc/my.cnf
    transaction_isolation=read-commit
    

    4.名词

    1.脏读:RU级别,执行事务修改数据,被读取,但是数据最终回滚了,查询到的数据就是脏读
    
    2.幻读:删除所有表数据,删除的同时有人插入数据,查看数据时以为是没删干净
    
    3.不可重复读:修改数据后被读取,被读取之后再次修改数据,两次数据不一致
    
  • 相关阅读:
    HDU4513 吉哥系列故事——完美队形II Manacher算法
    POJ3974 Palindrome Manacher算法
    POJ1674 Sorting by Swapping 置换群
    100个著名初等数学问题[转载]
    POJ1026 Cipher 置换群
    FOJ1977 Pandora adventure 插头DP
    HDU1964 Pipes 插头DP
    POJ1286 Necklace of Beads polya计数
    Manacher算法O(n)回文子串算法[转载]
    POJ3270 Cow Sorting 置换群
  • 原文地址:https://www.cnblogs.com/Applogize/p/13374249.html
Copyright © 2011-2022 走看看