• mysql 事务中的锁


    事务中的锁

    1.什么是锁

    1.锁 顾名思义就是锁定的意思
    2.作用:在事务ACID特性过程中,“锁”和“隔离级别”一起来实现“I”隔离性的作用
    

    2.锁的类别

    排他锁:在修改一条数据是,其他人不得修改
    共享锁:保证在多事务工作期间,数据查询时不会被阻塞
    
    乐观锁:多事务操作时,数据可以被同时修改,谁先提交,谁修改成功
    悲观锁:多事务操作时,数据只有一个人可以修改
    

    3.多版本并发控制

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

    4.锁的粒度

    MyISAM:表级锁
    InnoDB:行级锁
    

    5.事务的隔离级别

    1)四种隔离级别

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

    2)数据库专业名词

    #1.脏读:
    执行一个事务,还没有提交就被读取,可是事务回滚了,那么之前读到的数据就是脏数据
    
    #2.幻读:
    当删除一条数据时,刚删除,有别人插入同一条数据,我查看时以为是没有删除
    
    #3.不可重复读
    第一次读取数据和第二次读取数据之间数据被别人修改了,导致第一次读取的数据与第二次读取的数据不同
    

    3)设置隔离级别

    #1.查看隔离级别
    mysql> show variables like '%iso%';
    +---------------+-----------------+
    | Variable_name | Value           |
    +---------------+-----------------+
    | tx_isolation  | REPEATABLE-READ |
    +---------------+-----------------+
    1 row in set (0.00 sec)
    
    #2.设置数据库为RU级别
    [root@db01 ~]# vim /etc/my.cnf
    [mysqld]
    transaction_isolation=read-uncommit
    #transaction_isolation=read-commit
    
  • 相关阅读:
    js大文件上传(切片)
    前端大文件上传(切片)
    vue大文件上传(切片)
    网页大文件上传(切片)
    web大文件上传(切片)
    FCKEditor 实现ctrl+v粘贴图片并上传、word粘贴带图片
    umeditor 实现ctrl+v粘贴图片并上传、word粘贴带图片
    百度web编辑器 实现ctrl+v粘贴图片并上传、word粘贴带图片
    百度编辑器 实现ctrl+v粘贴图片并上传、word粘贴带图片
    百度ueditor 实现ctrl+v粘贴图片并上传、word粘贴带图片
  • 原文地址:https://www.cnblogs.com/xiaolang666/p/13902416.html
Copyright © 2020-2023  润新知