首页 > 数据库 >mysql表加锁与解锁

mysql表加锁与解锁

时间:2023-04-19 11:12:05浏览次数:39  
标签:TABLES 事务 加锁 解锁 线程 mysql INNODB SELECT

一、加锁

表名:test

1、加读锁

#读锁,锁定之后,无论是当前线程还是其他线程均只能读操作,写操作全部被堵塞,备份时可以用,避免在备份过程中,表被更新
LOCK TABLES test READ;

 

2、加写锁

#写锁,锁定之后,只有当前线程可以进行读操作和写操作,其他线程读操作和写操作均被堵塞.
LOCK TABLES test WRITE;

 

3、行级锁、排它锁

表需要是InnoDB引擎,还需要配合事务;

BEGIN;
SELECT * FROM test WHERE sn = 'F20LIKE22082316' FOR SELECT;
COMMIT;  #事务提交[或者 ROLLBACK 事务回滚]

在启动事务然后锁定某一行后,在事务提交之前或者事务回滚之前该行会一直处于锁定状态,此时只允许当前线程进行读写操作,其他线程只能进行读操作,其他写操作全部被堵塞。

MYSQL中只有INNODB和BDB类型的数据表才能支持事务处理!其他的类型不支持;

 

二、解锁

1、查看正在被锁的表

show OPEN TABLES where In_use > 0;

解锁表:

#解锁 (不用写表名,只能自己解锁,即同一连接,别人无效,不同连接无效。)
UNLOCK TABLES;

 

2、查锁表进程

#查锁表进程
show full processlist;
#或
SELECT * FROM information_schema.PROCESSLIST;
 
#杀掉锁表进程id=33(任何人都行)(连接断开,即进程结束,即锁也没了。)
kill 33;

 

3、事务锁

1:查看当前的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;

杀死进程id,就是上面命令的trx_mysql_thread_id列
kill 线程ID;

2:查看当前锁定的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

3:查看当前等锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;

 

标签:TABLES,事务,加锁,解锁,线程,mysql,INNODB,SELECT
From: https://www.cnblogs.com/weiyiming007/p/17332643.html

相关文章

  • MySQL 时间类型 date、datetime 和 timestamp 的用法与区别
    时间范围datetime和timestamp区别时间范围不一样,TIMESTAMP要小很多,且最大范围为2038-01-1903:14:07.999999,到期也不远了。datetime与时区无关、timestamp与时区有关。对于timestamp,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转......
  • mysql增删改查
    1、增insertintotable_name()value();insertintotable_name()values(),(),();insertintotable_namevalue();增加数据,通过关键字insert进行如果是在一行中插入部分字段数据,必须在value之前声明插入字段,而value后的值按声明字段顺序排列。如果插入全部字段,可......
  • mysql高级查询
    1、union联合查询,使用关键字union,其前后为查询字段数相等的select语句。查询结果是先输出前表的行,再输出后表的行。union后可以使用关键字all或者distinct,分别表示不去重和去重。去重指的是将重复的行只保留最开始的一行,判断依据是前后按序对应的查询字段,只区分字面量,而不关心数......
  • mysql事务
    1、介绍MySQL事务主要用于处理操作量大,复杂度高的数据。在MySQL中只有使用了Innodb数据库引擎的数据库或表才支持事务。事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行。事务用来管理insert,update,delete语句2、事务条件ACID......
  • mysql之alter命令
    #删除表字段,需要表中字段数大于1ALTERTABLEtestalter_tblDROPi;#添加字段,添加到末尾ALTERTABLEtestalter_tblADDiINT;#添加字段到首位ALTERTABLEtestalter_tblADDiINTFIRST;#添加字段到某字段之后ALTERTABLEtestalter_tblADDiINTAFTERc;#定义......
  • mysql管理
    MySQL管理|菜鸟教程(runoob.com),在下方笔记有大量有用内容。1、启动管理1.1windows1.2linux(这里安装的是mariadb)systemctlstartmariadb#启动systemctlrestartmariadb#重启systemctlstopmariadb#停止systemctlstatusmariadb#查看运行状态systemctlenabl......
  • mysql索引与主键、外键
    1、介绍优点:索引可以大大提高mysql的检索速度。缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。建立索引会占用磁盘空间的索引文件。2、分类2.1普通索引#基础创建CREA......
  • mysql函数
    1、介绍mysql函数分为四大类:字符串函数、数值函数、日期函数和高级函数。MySQL函数|菜鸟教程(runoob.com)2、常用一般函数时间:now()#返回当前日期和时间2018-09-1920:57:43curtime()#返回当前时间19:59:02current_timestamp()#返回当前日期和时间2018-09-1920:......
  • mysql函数(补充)
    环境:10.4.26-MariaDB1、sleepsleep(n)执行一遍函数,延时n秒如果在where条件中多次需要执行sleep,则多次延时sleep函数返回为false,不论是n是否为0假设设置sleep(100),数据库如实进行了延时n可以设定为小数,最小是0.001,但是这并不是绝对准确2、updatexmlupdatexml(v1,v2,v3......
  • MySQL 主从延迟的常见原因及解决方法
    承蒙大家的支持,刚上市的《MySQL实战》已经跃居京东自营数据库图书热卖榜第1名,收到的反馈也普遍不错。对该书感兴趣的童鞋可通过右边的链接购买。目前,京东自营有活动,只需5折。主从延迟作为MySQL的痛点已经存在很多年了,以至于大家都有一种错觉:有MySQL复制的地方就有主从延......