MySQL的持续时间和获取时间


83

我正在使用MySQL工作台-运行查询时,持续时间和获取时间之间有什么区别?

还有一种方法可以在MySQL中启用微秒选项吗?


奇怪的赏金。所有答案都是正确的,但您只是不相信它们?这里这里是mysql论坛上与Oracle合作的Mike Lischke的完全相同的答案。足够可信吗?
雨果·德辛

Answers:


155

提取时间-衡量传输提取结果需要花费多长时间,与查询执行无关。我不会将其视为sql查询调试/优化选项,因为获取时间取决于网络连接,而网络连接本身与查询优化没有任何关系。如果获取时间成为瓶颈,则很可能存在一些网络问题。

注意:每次执行查询时,获取时间可能有所不同。

持续时间-是需要执行查询的时间。优化sql查询的性能时,应尝试将其最小化。

参考


5
对于优化目的,请记住,选项query_cache_type必须为OFF,以使结果不受缓存影响。见stackoverflow.com/questions/181894/...
dellasavia

6
尽管我同意持续时间是您通常要优化的值,但是由于持续时间直接关系到查询的效率,因此异常高的获取时间也会指出重要的逻辑错误和/或效率低下。例如,您可能在客户端应缓存的每个查询中传输大量文本。或者,你可能会返回100K行时,你只希望10
GrandOpener

1
@GrandOpener好点-或者,当您真正需要的只是行ID时,您可以执行select(*)。
安德鲁·洛里安(Andrew lorien)2016年

我在MySQL中打开了探查器并运行查询。然后,我检查了Workbench和Profiler的输出。Workbench报告的持续时间为0.373,而探查器的总持续时间勉强达到0.01。这是否意味着Workbench中的Duration输出不是MySQL执行查询所花费的总时间?
Meglio

这似乎不正确。我有两个查询,它们返回相同的行(15300),但它们的状态始终不同。每次需要花费14,443秒的持续时间/ 1111,810秒的获取,而其他需要443,986秒的持续时间/ 0,0089秒的获取。这是为什么?
沙希德

15

持续时间显示执行查询所需的时间,而获取则是读取结果集(检索数据)所需的时间。

我不确定微秒选项。如果这是关于优化的,请记住-“过早的优化是万恶之源”


0

大约微秒,尝试在“首选项”菜单中启用它,并且我还遇到了有关持续时间和之前的获取时间的问题,现在我似乎得到了答案,即持续时间是查询的执行时间,并且获取是检索结果并将它们发送到您想要的任何地方。例如,我得到一个查询,其持续时间为0.078,但需要60秒才能将数据发送回我的网站。


0

执行时间是准备查询和运行查询所花费的时间,而提取时间是提取行结果所花费的时间。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.