MySQL统计输出

MySQL统计输出,mysql,bash,shell,Mysql,Bash,Shell,我有一个SQL文件,其中包含临时表创建、一些加载数据填充、一些选择和一些更新 我想通过shell上的CLI了解在每条语句上花费的时间。如果我的文件包含: SELECT "Step 1" AS ''; SELECT col1, col2 FROM t1 ORDER BY col3; 我跑: mysql -h host db < file mysql-h主机数据库

我有一个SQL文件,其中包含临时表创建、一些加载数据填充、一些选择和一些更新

我想通过shell上的CLI了解在每条语句上花费的时间。如果我的文件包含:

SELECT "Step 1" AS '';
SELECT col1, col2 FROM t1 ORDER BY col3;
我跑:

mysql -h host db < file mysql-h主机数据库<文件 我希望得到的输出是:

Step 1 1 row in set (0.00 sec) col1 col2 20073 0724081 20073 0724685 20073 0726347 20073 0726932 20073 0733623 5 rows in set (0.00 sec) 第一步 一行一组(0.00秒) col1 col2 20073 0724081 20073 0724685 20073 0726347 20073 0726932 20073 0733623 一组5行(0.00秒) t设置中的
1行(0.00秒)
5行(0.00秒)
是我要查找的信息,不是进程的Un*x时间

我尝试了不同的
mysql
选项,甚至
--显示警告--I-am-a-dummy
都没有用。有没有办法获得要求的信息

谢谢


编辑:为首次选择添加了缺失的时间。

我猜由于舍入,您正在丢失计时数据。(例如,您的查询花费的时间远远少于0.001秒。

尝试mysql profiler-

问题是..我根本没有得到最后一行。我希望每一行都有最后一行。感谢您提供的分析信息。我可以用它来计算所花费的时间。有没有办法获得返回的行数?@danosure-有mysql\u num\u rows()和mysql_受影响的_行()在C API中,但您可能无法通过bash访问它。通常,我将执行一个
mysql-N-h host db
或将结果导入一个文件,然后执行
wc-l
谢谢您的提示,但这不适用于我的情况,因为此SQL文件有许多语句,人们可以添加更多语句,但所有输出都应该放在一个文件中。由于无法管理,我无法将其拆分为多个文件。这些文件很“简单”我不想嵌入到程序中的任务。用户将不得不接受此输出,而不是知道每条语句的确切数字。此外,我不确定这里的netiquette,您有最有用的提示,但没有答案…@Danosaure-在这种情况下,您需要在问题中解释它。任何地方都有一个函数
found_rows()
,它可以与
SQL_CALC_found_rows
,details-一起使用。缺点是您需要将查询一分为二。抱歉,我虽然很清楚,我希望按照OP中的指定设置
5行(0.00秒)
。因此将
ROW_COUNT()
found_rows()组合起来
提供了我所需要的。谢谢。