1showprocesslist;showprocesslist显示哪些线程正在运行.您也可以使用removingduplicates正在执行一个selectdistinct方式的查询,但是mysql无法在前。
- 情感问答
- 答案列表
mysql 锁表查询:mysql查询锁表语句[朗读]
这牵涉到mysql的事务,简单通俗的话,就这样给你解释有一个任务序列控制sql语句的执行,第一次有select的语句查询表a,mysql服务器在执行select之前将表a加读锁,第二次又有一条select语句查询表a,mysql服务器发现在任务序列中有表a的读锁,也就是同时还有一个sql查询表a,读锁不会影响这条sql语句,当有一条update或者insert语句对表a操作时,mysql服务器会对表a加写锁,以此提示之后的对表a操作的sql语句等待写锁解锁后在执行,以免造成写入与读取的混乱。
用navicate工具可以轻松查看里面lock的就是被锁的。
查询肯定会加读锁,对千万量级别的场景,考虑主从多个数据库架构环境吧。
方法/步骤使用终端或命令提示符登录到mysql,输入命令:mysql-hxxxx.xxx.xxx-p3306-uusername-ppassword在mysql客户端下输入命令:showengineinnodbstatus\g;在打印出来的信息中找到“latestdetecteddeadlock”一节内容分析其中的内容,我们就可以知道最近导致死锁的事务有哪些。