我有一个查询在多个表上执行多个连接并使用覆盖索引。直接从mysql cli而不是mysql workbench执行时,它似乎运行得更快。
mysql > some query
...
250 rows in set (0.05 sec)
来自mysql workbench的需要~0.200 sec duration / 0.100 sec fetch
是否有超出延迟,身份验证和数据传输的原因,为什么它会在控制台上快几个数量级?每次从mysql工作台执行查询时是否会发生三向tcp握手,或者在关闭工作台会话之前该tcp连接是否保持打开状态?
答案 0 :(得分:2)
Workbench中存在持久连接,因此在这方面没有任何开销。在CLI和Workbench中执行查询应该同样快,但有时数据传输速度有点慢,因为当用户单击结果集视图中的头字段时,Workbench首先在本地缓存结果以便能够对其进行排序(包括多个列排序)。尝试在两个工具中重复查询,看看时间是否仍然不同。由于执行缓存,第一次运行查询通常比后续运行慢。