暂无图片
mysql锁等待
我来答
分享
坤易
2020-01-14
mysql锁等待

我的会话一执行了lock table test read;会话二执行了update test set name=‘test’ where id=2;会话二处于等待,请问从哪个视图能够查到这个锁等待的情况?innodb_trx没有记录;innodb_locks无记录;innodb_lock_waits无记录。

我来答
添加附件
收藏
分享
问题补充
6条回答
默认
最新
llzx373

select * from metadata_locks\G

5.7版本的话在performance schema中。

暂无图片 评论
暂无图片 有用 0
打赏 0
执剑者

show open tables where in_use>0;

show processlist;

暂无图片 评论
暂无图片 有用 0
打赏 0
坤易

metadata_locks表中无数据,好像开启这个需要打开一些开关才行。
show open tables 能看到有人在用,但是看不到是谁在用。

暂无图片 评论
暂无图片 有用 0
打赏 0
执剑者

mysql社区版是无法查看DML锁的详细信息的,只能根据processlist信息找出阻塞会话之间的关系。

暂无图片 评论
暂无图片 有用 0
打赏 0
小菜DBA

请出示你的数据库版本,mysql5.6是无法查看mdl锁的,如果是mysql5.7+版本,可以通过查询 performance_schema.metadata_lock 进行观察,关键字 SHARED_READ

暂无图片 评论
暂无图片 有用 0
打赏 0
Cui Hulong

##关联一下语句看看行不行,以下3张表5.6 都应该存在的
select d.trx_started ,a.THREAD_ID, b.PROCESSLIST_ID,a.SQL_TEXT
from performance_schema.events_statements_current a
join performance_schema.threads b
on a.THREAD_ID=b.THREAD_ID
join information_schema.processlist c
on b.PROCESSLIST_ID=c.id
join information_schema.innodb_trx d
on c.id=d.trx_mysql_thread_id
where a.SQL_TEXT like ‘%alter%’
##ddl语句加进条件
order by d.trx_started ;

暂无图片 评论
暂无图片 有用 1
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
mysql8怎么查看优化后的sql?
回答 1
举一个例先执行explainselectisdelete,isvipfromuserwhereisdeleteisvipandisdelete0;然后再执行showwarnings;就可以看到优化后的
MySQL配置文件加载顺序?
回答 5
已采纳
一、Windows环境下配置文件读取顺序1、%WINDIR%\my.ini,%WINDIR%\my.cnf全局配置2、C:\my.ini,C:\my.cnf全局配置3、BASEDIR\my.ini,B
MHA架构执行/usr/local/bin/masterha_check_ssh --conf=/etc/mha/mha.conf出现报错
回答 1
已采纳
检查一下perl的版本,以及perlParamsValidate的版本
ITERATE 和 LEAVE有什么区别?
回答 1
已采纳
ITERATE语句用于结束本次循环的执行,开始下一轮循环的执行操作,重新开始循环;而LEAVE语句用于终止当前循环,跳出循环体。ITERATE只能应用在循环结构LOOP、REPEAT和WHILE语句中
为什么在MySQL主从结构的主数据库中,不可能出现中继日志?
回答 1
已采纳
MySQL在从节点上使用了一组编了号的文件,这组文件被称为中继日志。当从服务器想要和主服务器进行数据同步时,从服务器将主服务器的二进制日志文件拷贝到自己的主机,并放在中继日志中,然后调用SQL线程,按
MySQL数据文件能存放在不同的目录吗
回答 2
也可以看看这个https://www.modb.pro/db/100600
求告知:mysql数据库哪个版本稳定,兼容性强,对聚合函数要求低?
回答 1
已采纳
建议选择8.0版本,一般为了保证稳定性选择3月6月之前的版本即可。目前8.0.25就可以了。聚合函数部分变化一直没有,8.0都了窗口函数,应该对统计有一些帮助
用二进制包安装mysql的时候,是先创建配置文件再运行mysql_install_db,还是反过来?
回答 1
已采纳
先创建配置文件,再在初始化的时候使用配置文件进行初始化./scripts/mysqlinstalldbdefaultsfile/etc/mysql/my3306.cn
mysql无法启动 配置文件也改过了
回答 1
可以先看下errorlog
mysql如何update多条数据 ?
回答 1
已采纳
where的时候带上特定条件,如果条件是多行,那么更新就是多行。比如whereid1通常是一行。如果id是主键。如果whereid<10那么就是多行