zoukankan      html  css  js  c++  java
  • Mysql事务与锁详解

    脏读:

     

    不可重复读:

     幻读:

     锁:

     

    表级别的意向锁为了提高效率,

    我们能给一张表成功加上一个表锁的前提是:没有任何一个事务对这张表的某些行加了锁。

    如果没有意向表锁:

    如果现在要给一个表加上表锁。

    如果这张表有一千万行数据,需要全表扫描行,是否有事务锁定了某行。

    如果一张表不使用索引,那么加一个排他锁会锁定整张表。

    会为每一行数据默认创建一个聚集索引,看起来好像锁定了整张表

    多我们使用唯一索引锁定了一行数据的时候,此时使用主键索引获取该行的锁时,依然失败。

     在innodb中因为二级索引底层存储的依然是主键索引。

    当我们使用范围查询的时候会加邻键锁 type=range

    所命中的行的 左开右闭 和下一个 左开右闭区间

    在innodb 推荐使用自增的id作为主键索引,在这种情况下 如果我们要去解决幻读的问题,一定要锁住下一个左开右闭区间      ?????

     

     

    如果没有命中索引扫描全表锁住整张表

  • 相关阅读:
    openjudge 2750
    hexo部署云服务器
    freemaker传输数据问题
    FormData在axios中的骚操作
    Docker安装与初次使用
    docker-compose实现前后端分离的自动化部署
    centos7下设置静态ip
    centos7 安装mariadb 并配置主从复制
    centos7安装solr服务
    centos7安装redis
  • 原文地址:https://www.cnblogs.com/wangkaihua/p/10217490.html
Copyright © 2011-2022 走看看