mysql中的查询执行时间

use*_*498 5 mysql mysql-5 mysql-workbench mysql-5.5

当我执行查询时,我在 mysql 中运行了查询,其中包含大约 3300 万条记录

  • 从城市中选择人口 1 < 200000;执行后显示如下

34459393 行(16.04 秒)

我的问题是什么是 16.04 秒,因为在正常时间它已经花费了 30 多分钟,但它显示了 16.04 秒。我如何计算实际时间。

jyn*_*nus 5

16.04 秒是客户端上的一个计时器,用于测量调用和执行查询之间经过的时间量(如果您想更具体,则为调用 start_timer() 和mysql_end_timer ( ) 之间的挂钟时间,这可能会导致像我得到的这样搞笑的结果)。

您认为执行时间超过 30 分钟的原因可能是因为它没有考虑到 stdout 的输出。您可以通过执行以下操作来检查它是否确实需要 16 秒:

mysql> pager cat > /dev/null 
mysql> <your query here>
mysql> nopager
Run Code Online (Sandbox Code Playgroud)

如果你想测量写入标准输出需要多少时间,你可以这样做:

$ time mysql -u <your user> -p<your password> <your database> \
  -e "select population1 < 200000 from city"
Run Code Online (Sandbox Code Playgroud)

注意:您确定要为该表中的所有行打印 0 或 1 吗?也许该选项--safe-updates和/或使用 GUI 可以对您的查询有所帮助?