栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mysql锁和隔离级别(InnoDB)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mysql锁和隔离级别(InnoDB)

悲观锁

啥也别管 先上锁 安全第一

  • 行锁/表锁

    行锁:作用在行上 一般来说 当mysql updateByIndexes时候会只有索引命中的数据行加锁
    表锁:通过非索引字段用于update操作会加表级锁

  • 读锁(共享锁)lock in share mode / 写锁(排他锁)for update

    用于读 操作 共享锁不影响其他事务读取,但影响其他事务写,与排他锁
    不兼容

  • 意向排他锁/意向共享锁

    意向锁出现解决了 如果某行数据被加行级别锁 当其他事务为获取锁去判断是否有锁不必找哪一行是否加过锁 只需要判断是否存在意向锁,
    注:意向锁是表级锁 意向锁之间都相互兼容 意向也和行级读写多想兼容 意向锁系统自动添加和自动释放的 无需自己操作

乐观锁

乐观的认为操作数据时并不会有其他线程插手 事后才去判断
加一个vision字段 先读取到vision 再去操作数据 判断是否 vision发生了改变

隔离级别
  • 读未提交 脏读

    读取的是更改前的数据

  • 读已提交 不可重复读

    同一个事务相同sql 读取数据不一样

  • 可重复读 幻读 (Mysql默认隔离级别)

    同一个事务相同的查询 另一个事务在其间隙插入了数据 产生了不同查询结果 幻行

  • 可串行化

    串行执行事务 脏读 不可重复度 幻读 都不会发生 但会阻塞

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/632233.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号