【问题标题】:Why are queries executed from mysql workbench taking much longer than executing them directly from the mysql cli?为什么从 mysql 工作台执行查询比直接从 mysql cli 执行查询花费更长的时间?
【发布时间】:2013-04-02 06:34:25
【问题描述】:

我有一个查询,它在多个表上执行多个连接并使用覆盖索引。直接从 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 连接是否保持打开状态,直到您关闭工作台会话?

【问题讨论】:

    标签: mysql mysql-workbench


    【解决方案1】:

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

    【讨论】:

    • 我连续多次执行这两个查询,每次都返回相同的速度结果。如果是数据传输问题,不只影响时间细分的“获取”部分吗?为什么“持续时间”这么长?
    • 嗯,确实应该没有什么区别。不知道那里发生了什么。如果没有,Workbench 添加一个限制子句(可以在首选项中关闭)。尝试比较需要更多时间来执行的事情。在那种规模下,很难说,例如。连接器开销起着重要作用。仅当运行 30 秒的查询显示出相同的差异时,这才是真正的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-28
    • 2018-01-10
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 2016-09-13
    • 1970-01-01
    相关资源
    最近更新 更多