博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql InnoDB 行锁的实现 -Oracle是对每行数据加锁实现
阅读量:2219 次
发布时间:2019-05-08

本文共 333 字,大约阅读时间需要 1 分钟。

通过索引项加锁实现

  1.只有条件走索引才能实现行级锁

  2.索引上有重复值,可能锁住多个记录

  3.查询有多个索引可以走,可以对不同索引加锁

  4.是否对索引加锁实际上取决于mysql的执行计划

自增主键做条件更新,性能最好

测试验证:

1.创建t2表,在a上添加索引

create table t2(a int,b int,key idx1(a));

2.在t2表上插入数据:

insert into t2 values(1,1);insert into t2 values(1,5);

在a连接中开启事务并对数据进行加锁:

 

在b连接中开启事务也加锁

 会发现b连接中加锁操作阻塞,最终事务被回滚。

 

这里简单引申一下:如果彻底没有索引的话,那应该就是锁表了。这里不做演示。

转载地址:http://lvdfb.baihongyu.com/

你可能感兴趣的文章
Linux 查看文件大小
查看>>
Java并发编程:线程池的使用
查看>>
redis单机及其集群的搭建
查看>>
Java多线程学习
查看>>
检查Linux服务器性能
查看>>
Java 8新的时间日期库
查看>>
Chrome开发者工具
查看>>
【LEETCODE】102-Binary Tree Level Order Traversal
查看>>
【LEETCODE】106-Construct Binary Tree from Inorder and Postorder Traversal
查看>>
【LEETCODE】202-Happy Number
查看>>
和机器学习和计算机视觉相关的数学
查看>>
十个值得一试的开源深度学习框架
查看>>
【LEETCODE】240-Search a 2D Matrix II
查看>>
【LEETCODE】53-Maximum Subarray
查看>>
【LEETCODE】215-Kth Largest Element in an Array
查看>>
【LEETCODE】241-Different Ways to Add Parentheses
查看>>
【LEETCODE】312-Burst Balloons
查看>>
【LEETCODE】232-Implement Queue using Stacks
查看>>
【LEETCODE】225-Implement Stack using Queues
查看>>
【LEETCODE】155-Min Stack
查看>>