mysql查询sql会锁表吗

mysql查询sql会锁表吗,第1张

会锁,mysql锁表或锁行的情况是:

当主键或者唯一索引的效果时,是锁行。但是如果“重复率”高时,Mysql不会把这个普通索引当做索引,即会造成一个没有索引的SQL,从而形成锁表。

特别是在UPDATE、DELETE *** 作时,MySQL不仅锁定WHERE条件扫描过的所有索引记录,而且会锁定相邻的键值,即所谓的next-key locking。

1、确定mysql有锁表的情况则使用以下命令查看锁表进程

2、杀掉查询结果中已经锁表的trx_mysql_thread_id

扩展:

1、查看锁的事务

2、查看等待锁的事务

3、查询是否锁表:

4、查询进程

第一步,创建数据库表writer和查看表结构,利用SQL语句

create table writer(

wid int(10),

wno int(10),

wname varchar(20),

wsex varchar(2),

wage int(2)

第二步,向数据库表writer插入五条数据,插入后查看表里数据

第三步,利用锁定语句锁定数据库表writer,利用SQL语句:

lock table writer read

让数据库表只读不能进行写

第四步,为了验证锁定效果,可以查看数据库表数据,利用SQL语句:

select * from writer

第五步,利用update语句对id=5进行更新,SQL语句为:

update writer set wname = '胡思思' where id = 5

第六步,利用unlock进行解锁,SQL语句为:

unlock tables


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/6095510.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-14
下一篇 2023-03-14

发表评论

登录后才能评论

评论列表(0条)

保存