如何获得毫秒或微秒加载时间在MySQL
问题描述:
我已经搜查,搜查,但我没能找到一个简单的方法来得到这样的:如何获得毫秒或微秒加载时间在MySQL
Query OK, 50000 rows affected (0.35 sec)
在毫秒或微秒
。
我该如何实现它?
答
那个时间是由mysql监视器应用程序计算出来的,并不是由mysql服务器完成的。这不是你可以通过做(例如)select last_query_execution_time()
(这将是很好的)编程方式检索。
通过在调用查询函数之前和之后获取系统时间,可以通过在应用程序中执行计时来粗略地模拟它。与mysql部分相比,希望客户端的开销是最小的。
+0
为什么它说错误1305(42000):功能mydb.last_query_execution_time不存在。 – AMB 2017-09-02 03:26:57
答
你可以自己时间它在运行的查询代码:
伪代码:
double StartTime = <now>
Execute SQL Query
double QueryTime = <now> - StartTime
答
我带着同样的问题,我也从Linux控制台我的查询使用time
$ time mysql --user="user" -D "DataBase" -e "SELECT SQL_NO_CACHE COUNT(1) FROM table"
------------
count(1)
------------
750
------------
real 0m0.269s
user 0m0.014s
sys 0m0.015s
或
$ time -f"%e" mysql --user="user" -D "DataBase" -e "SELECT SQL_NO_CACHE COUNT(1) FROM table"
------------
count(1)
------------
750
------------
0.24
它给不同的值从“MySQL的”,但至少是你可以用,比如这个脚本工作:
#!/bin
temp = 1
while [ $temp -le 1000]
do
/usr/bin/time -f"%e" -o"/home/admin/benchmark.txt" -a mysql --user="user" -D "DataBase" -e "SELECT SQL_NO_CACHE COUNT(1) FROM table" > /dev/null 2> /dev/null
let temp=$temp+1
done
执行查询1000次,-f只显示实时,- o输出文件,-a附加到输出,>/dev/null 2>/dev/null忽略查询输出,因此它不会在控制台中每次打印。
由于mysql不支持DateTime行上的毫秒,因此它可能不支持任何地方的毫秒。 – dcarneiro 2011-02-25 17:22:58