0

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

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

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

  1. 许多网络会话都有单独的 db_user 副本。
  2. 许多浏览器会话的单个 db_user 副本。
  3. 任何其他。

请帮忙。

4

1 回答 1

4

哈米特,

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;
于 2012-07-23T05:56:11.233 回答