
rc下,单独执行每个只有1个行锁,为啥2个会话会发生锁等待?
比如表t create table t(id int ,b int) ,没有任何索引
insert into t values(100,1) ,(200,2),(300,3)
rc 下面
begin;
select * from t where b=2 for update ; ---sess 1 ,单独查看锁,只有1个行锁
begin;
select * from t where b=3 for update ; ---sess 2, 单独查看锁,只有1个行锁
2个行锁不同,一个是2 一个是3
为什么会发生阻塞呢?
我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
回答交流
Markdown
请输入正文
提交
相关推荐
mysql 慢查询日志可以查到指定库名的慢日志吗?
回答 1
已采纳
不好区分。除非SQL中写了schema。table这样的。否则就是开发和运维对表比较熟悉。
mysql表里的数据统计功能如何实现?
回答 2
已采纳
怎么统计都离不开要执行SQL。框架也是对SQL进行包装的吧。
MySQL 怎么把union all查询出来的数据变成一行?
回答 1
已采纳
selectcount(),0gdjyxxx,0gdjyxxx,0gdjyxxxfromjzgjcsjzlbwheresubstr(txrq,0,4)tochar(sysdate,'yyyy')
mysql和oracle有ss()这个函数吗?
回答 2
已采纳
应该是自定义函数。mysql(root@localhost)[(none)]16:49:37>selectss();ERROR1305(42000):FUNCTIONssdoesnotexist
Mysql是不是只要范围查询就是加next-key锁不加gap lock?
回答 3
已采纳
nextkey默认就是加 gaplock来实现的哦。
ddl没有阻塞dml的问题
回答 1
在你描述的场景中,ALTERTABLE操作在sess1中执行,同时sess2尝试在tt表中插入数据。在MySQL5.7中,由于ALTERTABLE的实现方式,sess2的INSERT操作可能不会被立即
ERROR 2003 (HY000):Can’t connect to MySQL server on 'localhost' (10061)
回答 1
已采纳
mysql未启动?,则启动即可:mac端:brewservicesstartmysqlmysql.serverstartcentos端:systemctlstartmysqld.serviceserv
mysql 0怎么保留两位小数?
回答 2
在PostgreSQL中,可以使用函数trunc对浮点数进行截断。函数的第二个参数表示保留的小数位数,例如可以使用trunc(2.3333,2)得到2.33。
mysql 可以指定用户默认的 通用表空间 吗?
回答 2
已采纳
建立一个表空间,如果想其他建表都用这个表空间,建表时候指定一下,否则不会用。
有没有人使用mysql 8.0安装好登录就报错
回答 1
1、MySQL8.0的身份验证规则,采用了新的加密规则:cachingsha2password2、可以通过以下方式修改密码:mysqlurootpusemysql;ALTERUSER‘root’@’%
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~