use*_*851 75 mysql mysql-workbench
我正在使用MySQL工作台 - 运行查询时持续时间和获取时间之间有什么区别?
还有一种方法可以在MySQL中启用微秒选项吗?
Ler*_*eri 132
获取时间 - 测量传输获取结果所花费的时间,这与查询执行无关.我不认为它是sql查询调试/优化选项,因为获取时间取决于网络连接,它本身与查询优化没有任何关系.如果获取时间是瓶颈,则更有可能出现网络问题.
注意:获取时间可能因每次查询执行而异.
持续时间 - 是需要执行查询的时间.在优化sql查询的性能时,应该尽量减少它.
PCO*_*PCO 11
Leri的回答是一个好的开始,但忽略了MySQL可以在获得所有查询结果之前将数据流式传输到客户端的事实。
下面是一个包含 2 个具有相同结果的查询的示例。第一个使用group by,因此 MySQL 必须在发送所有数据之前计算完整的聚合。第二个使用子查询,因此 MySQL 逐行计算结果集,并能够立即将第一行结果发送给客户端。
正如你所看到的,第二个查询的获取时间长了 5 倍(对于相同的数据),因为MySQL Workbench 将第一次接收数据之前的时间显示为Duration,将之后的时间显示为Fetch,但因为可以涉及流式处理,这并不意味着获取持续时间只是网络持续时间。
在Fetch期间,数据库仍然可以计算结果。因此,如果您看到较长的获取持续时间,您实际上可以做一些事情!这可能意味着您的 MySQL 数据库正在将结果行逐一流式传输,并且正在努力计算完整的结果集。
| 归档时间: |
|
| 查看次数: |
44511 次 |
| 最近记录: |