mysql执行时间

mck*_*k89 19 mysql sql execution-time

有没有办法在mysql中获取最后执行的查询的执行时间?

sou*_*rge 32

mysql有一个内置的分析器.您可以通过发出set profiling=1;和使用show profiles;来启用分析,以获得执行时间.


Sab*_*lik 8

如果使用PHP ..您可以在查询之前和查询之后使用microtime()来确定查询执行所需的时间.

$sql_query='SELECT * FROM table';
$msc=microtime(true);
$mysql_query($sql_query);
$msc=microtime(true)-$msc;
echo $msc.' seconds'; // in seconds
echo ($msc*1000).' milliseconds'; // in millseconds
Run Code Online (Sandbox Code Playgroud)

  • 这不会告诉您 MySQL 执行查询需要多长时间。它告诉您 PHP 发送请求、等待接收请求以及接收结果所需的时间。它会因 PHP 客户端上运行的任何内容而变慢,如果 PHP 客户端和 MySQL 服务器之间存在任何延迟,结果将更加不准确。 (2认同)

G-J*_*G-J 6

试试这个...

mysql_query("SET profiling = 1;");
if (mysql_errno()) { die( "ERROR ".mysql_errno($link) . ": " . mysql_error($link) ); }

/* It goes without saying that this is your actual query that you want to measure the execution time of */
$query="SELECT some_field_name FROM some_table_name";
$result = mysql_query($query);
if (mysql_errno()) { die( "ERROR ".mysql_errno($link) . ": " . mysql_error($link) ); }

$exec_time_result=mysql_query("SELECT query_id, SUM(duration) FROM information_schema.profiling GROUP BY query_id ORDER BY query_id DESC LIMIT 1;");
if (mysql_errno()) { die( "ERROR ".mysql_errno($link) . ": " . mysql_error($link) ); }
$exec_time_row = mysql_fetch_array($exec_time_result);

echo "<p>Query executed in ".$exec_time_row[1].' seconds';
Run Code Online (Sandbox Code Playgroud)

  • 这被标记为 MySQL 问题。不是每个使用 MySQL 的人都在使用 PHP。 (6认同)