啥也别管 先上锁 安全第一
-
行锁/表锁
行锁:作用在行上 一般来说 当mysql updateByIndexes时候会只有索引命中的数据行加锁
表锁:通过非索引字段用于update *** 作会加表级锁 -
读锁(共享锁)lock in share mode / 写锁(排他锁)for update
用于读 *** 作 共享锁不影响其他事务读取,但影响其他事务写,与排他锁
不兼容 -
意向排他锁/意向共享锁
意向锁出现解决了 如果某行数据被加行级别锁 当其他事务为获取锁去判断是否有锁不必找哪一行是否加过锁 只需要判断是否存在意向锁,
注:意向锁是表级锁 意向锁之间都相互兼容 意向也和行级读写多想兼容 意向锁系统自动添加和自动释放的 无需自己 *** 作
隔离级别乐观的认为 *** 作数据时并不会有其他线程插手 事后才去判断
加一个vision字段 先读取到vision 再去 *** 作数据 判断是否 vision发生了改变
-
读未提交 脏读
读取的是更改前的数据
-
读已提交 不可重复读
同一个事务相同sql 读取数据不一样
-
可重复读 幻读 (Mysql默认隔离级别)
同一个事务相同的查询 另一个事务在其间隙插入了数据 产生了不同查询结果 幻行
-
可串行化
串行执行事务 脏读 不可重复度 幻读 都不会发生 但会阻塞
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)