对于以下情况,我是否需要显式锁定mysql表:
mysql数据库用户名:db_user(并且只有一个)
Web客户端会话:许多用户同时登录
由于mysql用户是单用的,但我的Web服务器有很多客户端会话。会发生什么(在一个表中插入记录然后获取插入ID并将数据添加到另一个表中):
请帮忙。
答案 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;