【发布时间】:2017-07-09 18:31:35
【问题描述】:
我有一个名为“电话”的表包含所有成员的电话号码,每个成员都有唯一的 id,还有另一个名为 posts 的表,posts 表有很多行,每个帖子都有自己的成员 id 和另一个单元格
我需要根据分支单元格从帖子表中收集所有成员 ID,并从电话表中删除从帖子表中收集的成员 ID
我试过了,但它给了我mysql服务器丢失连接的错误消息
delete from `phones` where `mid` in(select `uid` from `posts` where `branches` = 'contact');
注意:我在本地服务器上使用 mysql 工作台
更新
在我设置下面的首选项后,此查询也有效
进入Edit -> Preferences -> SQL Editor并增加参数:DBMS连接读取超时(以秒为单位)。例如:86400。
关闭并重新打开 MySQL Workbench。终止您之前可能正在运行的查询并再次运行该查询。
感谢@scaisEdge
【问题讨论】:
-
查询正确,不知道为什么会丢失连接。这些是大桌子吗?如果是这样,可能由于
branches上缺少索引,选择查询花费的时间太长? -
表格很大,分支列没有索引
-
@mohamad,你在拐弯抹角。如果表很大并且
branches上没有索引,则将扫描整个表,并且根据 MySQL 可用的硬件和资源,它可能需要比 DB 连接超时更长的时间。有了索引,你的查询是正确的。
标签: mysql