MySQL表锁

时间:2012-07-19 02:26:13

标签: mysql locking

对于以下情况,我是否需要显式锁定mysql表:

mysql数据库用户名:db_user(并且只有一个)
Web客户端会话:许多用户同时登录

由于mysql用户是单用的,但我的Web服务器有很多客户端会话。会发生什么(在一个表中插入记录然后获取插入ID并将数据添加到另一个表中):

  1. 许多Web会话都有单独的db_user副​​本。
  2. 许多浏览器会话的db_user的单个副本。
  3. 任何其他。
  4. 请帮忙。

1 个答案:

答案 0 :(得分:4)

Harmeet,

简短的回答是否定的,在做你所描述的事情时你不需要使用LOCK TABLES

当您想要确信自己是唯一写入表格的人时,您只需要使用LOCK TABLES,例如,如果您想要INSERT大量记录,并且想要尽可能快地进行操作。

您可以在mysqldump命令创建的转储文件中看到此信息。这是转储文件中的一个示例:

LOCK TABLES `tbl` WRITE;
/*!40000 ALTER TABLE `tbl` DISABLE KEYS */;
INSERT INTO `tbl` VALUES ...
/*!40000 ALTER TABLE `tbl` ENABLE KEYS */;
UNLOCK TABLES;