在 InnoDB 上运行 Mysql 5.1.57,并且存在数据库锁定问题。
我有两个单独的会话连接到单个数据库 MySQL。在第一个会话中,我在表 A 上运行了一个很长的 SELECT 查询(技术上是一个慢速查询)。然后在另一个连接上,我在表 B 上运行了一个小的 UPDATE 查询。
编辑:如本主题底部所述,当表/查询完全位于不同的数据库中时也会出现此问题,并且不限于表/查询位于同一数据库中。
由于某种原因,在长选择查询完成之前,表 B 上的更新不会完成,就好像它们在同一个连接上一样。此外,“PROCESS LIST”将第二个查询显示为“正在释放项目”,同时它正在等待执行。
是否有任何设置或配置问题会导致这些查询按顺序运行而不是同时运行?
在此先感谢您的帮助。
表A
CREATE TABLE `history` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_id` int(11) DEFAULT NULL,
`log` text NOT NULL,
`created_at` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `user_id_idx` (`user_id`),
CONSTRAINT `history_user_id_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=364398 DEFAULT CHARSET=utf8
Run Code Online (Sandbox Code Playgroud)
表B
CREATE TABLE `client` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`root_id` int(11) DEFAULT …Run Code Online (Sandbox Code Playgroud)