> ### ***应用场景***
* [ ] 高并发下单时,减库存量时要加锁
* [ ] 高并发抢单、抢票时要使用
*****
语法:lock table 表名1 read|write, 表名2 read|write...
unlock tables;
*****
MySQL锁示例代码
```
<?php
# 模拟秒杀活动-- 商品100件
CREATE TABLE a
(
id int comment '模拟100件活动商品的数量'
);
INSERT INTO a VALUES(100);
#模仿:以10的并发量访问这个脚本! 使用apache自带的ab.exe软件
error_reporting(0);
mysql_connect('localhost','root','admin123');
mysql_select_db('test');
# mysql 锁
mysql_query('LOCK TABLE a WRITE');// 只有一个客户端可以锁定表,其他客户端阻塞在这
$rs = mysql_query('SELECT id FROM a');
$id = mysql_result($rs, 0, 0);
if($id > 0)
{
--$id;
mysql_query('UPDATE a SET id='.$id);
}
# mysql 解锁
mysql_query('UNLOCK TABLES');
```