MySQL锁表以及解锁

1.什么是锁表

        

        mysql数据库的查询机制是在查询时会创建一个具有一定层级的数据,然后将数据从底层一直向上查询直到找到返回的数据。但是如果在单个数据库有多个连接的情况下对同一个数据表进行操作时,那么就会出现查询速度变慢的情况,当查询不出结果的时候就发生锁表了。

        除了以上的方式会导致锁表之外,还可以在对一个数据表进行备份或者迁移等操作时防止出问题去手动的进行锁表。被锁的表是无法进行任何操作的,锁表的语句如下:

LOCK TABLES tbl_name READ;

LOCK TABLES table_name READ;
2.解锁方法

        

        mysql中如果发生了锁表的情况可以通过直接杀死造成数据库进程堵塞的进程,这样没有进程去使用同一个资源就不会发生锁表的情况了。

        在mysql数据库之中打开一个空白脚本然后执行命令去查询当前有哪些进程是在使用的,然后使用kill语句将其关闭即可,命令如下:

# 显示进程
show processlist;
# 关闭进程
UNLOCK TABLES;

你可能感兴趣的:(MySQL,mysql,数据库)