#### 表锁
语法 :
~~~
lock table 表1 read|write 表2 read | write; //可以同时给几张表一起添加表锁
~~~
#### 添加读锁
语法:
~~~
lock table 表 read ;
~~~
给一张表加上读锁(myisam引擎)
![](https://box.kancloud.cn/ac7c25c0e1a26e880182351621110e62_505x79.png)
通过另一个用户端连接mysql ,进行修改操作 ,处于堵塞状态 . 无法修改,连当前客户端都无法修改 .只能进行查询操作 .
![](https://box.kancloud.cn/57ee7fa58d8e2390dae5847e7a973209_580x81.png)
**注意**: 添加表的读锁后,**针对锁表的用户**,只能操作锁定的表,不能操作没有锁定的表 .
#### 释放锁
语法:
~~~
unlock tables;
~~~
释放读锁之后,另外一个进程完成对表的修改 .
![](https://box.kancloud.cn/735974e3a00817067ded5a815153dfa4_434x66.png)
#### 添加写锁
~~~
lock table 表 write;
~~~
用另外一个进程进行查询 :
![](https://box.kancloud.cn/dd1a4ddbc7ebf97d6263584d3c9c7d39_315x61.png)
阻塞状态,除了锁表的用户, 其他用户读都不能读. 锁表用户也不能操作其表,只能操作当前表(包括修改).
锁表用户释放锁后 , 其他用户解除阻塞 :
![](https://box.kancloud.cn/7726a716a06b7a78f1c28fe70a243114_515x207.png)
- MySQL优化概述
- 存储引擎的选择
- innodb引擎
- myisam引擎
- memory引擎
- 查询需优化语句
- 通用查询日志
- 慢查询日志
- profile机制
- 索引
- 索引基本介绍
- 索引类型
- 索引管理语法
- 创建索引主要事项
- 执行计划
- 查看索引类型
- myisam索引数据结构
- innodb索引数据结构
- 索引覆盖
- 索引使用原则
- 列独立
- like查询
- 复合索引使用
- or运算都具有索引
- mysql智能选择
- 优化group by语句
- 前缀索引
- 全文索引
- 查询缓存
- 查询缓存操作
- 无缓存
- limit分页优化
- 分区
- 分区介绍
- list分区
- range分区
- hash分区
- key(键值)分区
- 分区管理
- 分表
- 分表介绍
- 水平分表
- 垂直分表
- MySQL锁机制
- 锁机制介绍
- 锁的几种形式
- 表锁操作
- 行锁操作
- 数据碎片与维护
- 范式
- 第一范式
- 第二范式
- 第三范式
- 反三范式
- 主从复制
- 介绍
- 读写分离