MySQL统计输出
我有一个SQL文件,其中包含临时表创建、一些加载数据填充、一些选择和一些更新 我想通过shell上的CLI了解在每条语句上花费的时间。如果我的文件包含: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主机数据库
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()组合起来
提供了我所需要的。谢谢。