programing

PHP에서 MySQL 쿼리의 실행 시간을 얻는 방법은?

kingscode 2023. 9. 18. 23:23
반응형

PHP에서 MySQL 쿼리의 실행 시간을 얻는 방법은?

저는 PHP에서 MySQL 쿼리를 실행하는데 시간이 얼마나 걸리는지 알고 싶습니다.PHP에서 MySQL 쿼리의 실행 시간을 얻을 수 있는 방법이 있습니까?

웹 서버의 로딩량에 따라 실행 시간이 달라지는지도 궁금합니다.서버가 다른 쿼리로 바쁘면 쿼리를 실행하는 데 더 많은 시간이 걸릴 것으로 예상됩니다.반면에 서버가 사용 중인 경우 쿼리는 차례만 기다린 후(병행으로 실행되는 쿼리 없이) 실행되고 대기 시간은 실행 시간에 포함되지 않는다고 상상할 수 있습니다.그렇다면 (두 가지 중) 어떤 시나리오가 맞을까요?

MySQL을 통해 이를 수행할 수 있는 방법이 있을 것입니다. 하지만 쉽고 신뢰할 수 있는 방법은 PHP의 것을 사용하는 것입니다.microtimefunction - 현재 시간을 밀리초로 반환합니다.

microtime()은 현재 Unix 타임스탬프를 microseconds로 반환합니다.이 기능은 > 시스템 호출 수신 시간을 지원하는 운영 체제에서만 사용할 수 있습니다.

getasfloat - 선택적 인수 없이 호출하면 이 함수는 문자열 "msec sec"을 반환합니다. 여기서 sec는 유닉스 에포크(1970년 1월 1일 0:00:00 GMT) 이후 초 단위로 측정된 현재 시간이고 msec는 마이크로초 부분입니다.문자열의 두 부분 모두 초 단위로 반환됩니다.

옵션인 get_as_float을 TRUE로 설정하면 플로트(초 단위)가 반환됩니다.

몇 가지 예시 코드:

$sql = '...';
$msc = microtime(true);
mysql_query($sql);
$msc = microtime(true)-$msc;
echo $msc . ' s'; // in seconds
echo ($msc * 1000) . ' ms'; // in millseconds

microtime()실행하는 데 시간이 걸립니다.만약 mysql에서 데이터를 얻길 원한다면, 이렇게...

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

$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';

MySQL에서 바로 꺼내려면 일반 로그를 사용하면 됩니다.

아직 켜져 있지 않으면 전원을 켭니다.

SET GLOBAL general_log = 'ON'; 

쿼리를 실행한 후 데이터를 보려면 다음을(를)

SELECT * FROM mysql.general_log;

무엇보다도, 당신은 아마 phpmyadmin에서 본 것처럼 쿼리 실행 시간을 얻게 될 것입니다.

언급URL : https://stackoverflow.com/questions/4501876/how-to-get-the-execution-time-of-a-mysql-query-from-php

반응형