重启mysql服务
你所需要的网站建设服务,我们均能行业靠前的水平为你提供.标准是产品质量的保证,主要从事成都网站建设、网站制作、企业网站建设、移动网站建设、网页设计、成都品牌网站建设、网页制作、做网站、建网站。创新互联建站拥有实力坚强的技术研发团队及素养的视觉设计专才。
执行show processlist,找到state,State状态为Locked即被其他查询锁住。KILL 10866。
有时候,会很不小心,在业务运行中执行了一条锁表语句。这时候该怎么办?
例如:修改元数据。
SHOW FULL PROCESSLIST 查看一下:
发现修改之后,锁表了。这时候怎么办? 杀死它 KILL 4623660
然后一切又恢复正常了。
一般对于数据量较大的表,需要修改表结构,或者做一些耗时比较久的锁表操作,建议在晚上(业务闲时)执行。这个时候可以配合使用任务处理一下。
如:修改一个表的字段长度,和添加索引
名词解释:
接着回家睡觉,第二天回来检查结果就好了。
附:添加唯一索引示例
MYSQL存储过程结合任务处理耗时操作
对于写锁定如下:
1)、如果表没有加锁,那么对其加写锁定。
2)、否则,那么把请求放入写锁队列中。
对于读锁定如下:
1)、如果表没有加写锁,那么加一个读锁。
2)、否则,那么把请求放到读锁队列中。
当然我们可以分别用low_priority 以及high_priority在写和读操作上来改变这些行为。
1、确定mysql有锁表的情况则使用以下命令查看锁表进程
2、杀掉查询结果中已经锁表的trx_mysql_thread_id
扩展:
1、查看锁的事务
2、查看等待锁的事务
3、查询是否锁表:
4、查询进程
1.查看表被锁状态
2.查看造成死锁的sql语句
3.查询进程
4.解锁(删除进程)
5.查看正在锁的事物 (8.0以下版本)
6.查看等待锁的事物 (8.0以下版本)