3

我有一个查询,它在多个表上执行多个连接并使用覆盖索引。当直接从 mysql cli 而不是从 mysql workbench 执行时,它似乎运行得更快。

mysql > some query
...
250 rows in set (0.05 sec)

从mysql工作台大约需要~0.200 sec duration / 0.100 sec fetch

除了延迟、身份验证和数据传输之外,还有什么原因可以让控制台的速度提高几个数量级吗?每次从 mysql 工作台执行查询时是否会发生三向 tcp 握手,或者该 tcp 连接是否保持打开状态直到您关闭工作台会话?

4

1 回答 1

2

Workbench 中有一个持久连接,因此在这方面没有开销。在 CLI 和 Workbench 中执行查询应该同样快,但是数据传输有时会慢一些,因为 Workbench 首先在本地缓存结果,以便在用户单击结果集视图中的标题字段时能够对其进行排序(包括多列排序)。尝试在两个工具中重复查询,看看时间是否仍然不同。由于执行缓存,查询的第一次运行通常比后续运行慢。

于 2013-04-02T06:55:13.127 回答