MySQL Workbench 查询统计:服务器和客户端时间?

Posted

技术标签:

【中文标题】MySQL Workbench 查询统计:服务器和客户端时间?【英文标题】:MySQL Workbench Query Stats: Server and Client Timing? 【发布时间】:2018-04-25 00:47:57 【问题描述】:

我正在从 mysql Workbench 运行查询,它允许您查看每个查询的统计信息。这些统计数据的一部分是“时间(在客户端测量)”和“时间(在服务器端测量)”。我已经包含了这个输出的例子。

Timing stats from MySQL Workbench

我想知道为什么服务器端的时间比客户端长。我可能完全错了,但我认为客户端考虑了服务器时间和信息输出之前的延迟,这会使客户端测量的时间更长。

我是新手,对执行时间不是很熟悉,但工作台手册并没有提供太多帮助,并假设我已经理解了这些值的含义以及它们的工作原理。任何帮助表示赞赏!

【问题讨论】:

可能是服务器端计时器如何工作的工件:dev.mysql.com/doc/refman/5.7/en/performance-schema-timing.html。您可能会看到您的服务器正在使用哪种方案,以及进行更改是否会修改结果。 这可能是海森堡测不准原理。 【参考方案1】:

我无法通过文档确认这一点,但对一个非常大的查询运行快速测试并使用返回到客户端结果网格的行数提供了一个可能的见解:

不要限制:

时间(在客户端测量):执行时间:0:00:0.77752995

时间(由服务器测量):执行时间:0:00:7.46805535

表锁等待时间:0:00:0.00018100

“动作输出”窗格中的持续时间/获取时间:0.778 秒/7.723 秒

10 行

时间(在客户端测量):执行时间:0:00:0.38576984

时间(由服务器测量):执行时间:0:00:0.00058682

表锁等待时间:0:00:0.00018400

“动作输出”窗格中的持续时间/获取时间:0.386 / 0.00002 秒

对我来说,服务器测量从客户端开始请求记录到它停止的时间是有意义的,而客户端测量服务器生成它需要的记录数量所花费的时间。也许要返回“准确”的执行时间,就是将行设置为返回“无限制”,并检查“操作输出”窗格中的“持续时间”。

我已经在 MySQL 论坛上发帖,希望得到解释,如果有的话会在这里发帖。

【讨论】:

以上是关于MySQL Workbench 查询统计:服务器和客户端时间?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL Workbench:“MySQL 服务器已消失”时重新连接到数据库?

DELETE 查询导致“查询中断”MySQL Workbench?

如何用MySQL workbench查询数据

使用MySQL Workbench查询超时的错误

如何在 Mysql Workbench GUI 中查看表格内容?

mysql workbench 将查询结果导出 sql 文件