有很多问题与我的主题相同,但我的内容和问题似乎是不同的。在我的工作台上,我运行代码
`select(msgid) from `table`.log where
id = 'example' and status = 'active' and month(created_at) = 12
and year(created_at) = 2018 limit 0,10;`
上面的代码运行得很好,但是当我运行代码b时
`select(msgid), count(msgid) from `table`.log where
id = 'example' and status = 'active' and month(created_at) = 12
and year(created_at) = 2018 limit 0,10;`
我得到了错误
错误代码:2013。查询30.002秒时与mysql服务器失去连接
为什么这会发生在我的工作台上?
ps:workbench和mysql的新成员
3条答案
按热度按时间ih99xse11#
您可以从以下位置更改超时:
编辑→ 偏好→ sql编辑器→ dbms连接读取超时(秒):600
将其更改为比当前值更大的值。
**更新您还可以通过以下方式设置读取超时:
pgvzfuti2#
下面是mysql workbench 8.0.13的首选项截图。我放了箭头,指示应该在哪里选择“sql编辑器”,然后在哪里找到“dbms连接读取超时间隔”字段。
我同意@salmana的评论,你应该优化你的查询,这样它就不会那么慢了。
特别是,您应该使用索引来帮助查询缩小要报告的行的范围。但是当你使用像
month(created_at)
以及year(created_at)
. 假设你有一个索引created_at
,则需要将该列自身置于比较运算符的左侧:此查询的最佳索引是复合索引:
gdx19jrr3#
您应该尝试增加dbms连接读取超时。
转到工作台编辑→ 偏好→ sql编辑器→ dbms连接读取超时:增加到6000