MySQL 尝试进行查询时总是失去连接

MySQL keeps losing connection when trying to make a query

我有一个 table,在 MySQL 中有以下内容:

我要使用 where 子句查询名为 'trade_time' 的 DATETIME 列,如下所示:

SELECT * FROM tick_data.AAPL
WHERE trade_time between '2021-01-01 09:30:00' and '2021-01-01 16:00:00';

我得到的是 2013 错误:大约 30 秒后与 MySQL 服务器失去连接。

我是 SQL 的新手,所以我很确定我可能在这里做错了什么,这样一个简单的查询肯定不会超过 30 秒吗?

数据有298M行,很大,我的印象是MySQL应该处理这种操作。

table只有3列,分别是trade_time,price and volume,我只想在合理的时间内按日期和时间查询数据,以便在[=37中进一步处理=].

感谢任何建议。

编辑:我已经将 MySQL Workbench 的超时限制设置为 5 分钟,上述查询用了 291 秒到 运行,只是为了获得 1 天数据,有什么办法可以加快性能吗?

298M 行需要处理很多。我绝对可以看到这需要超过 30 秒,但不会更多。首先,我要做的是删除默认的断开连接时间限制。就个人而言,我总是让我的时间大约为 300 秒或 5 分钟。如果您使用 mysql workbench 可以通过此方法完成:MySQL Workbench: How to keep the connection alive

此外,我会尝试检查 trade_time 列是否有索引。将经常查询的列编入索引是加快查询速度的好策略。

SHOW INDEX FROM tablename;

查看 trade_time 是否在列表中。如果没有,您可以像这样创建一个索引:

CREATE INDEX dateTime ON tablename (trade_time);