PHP에서 MySQL 쿼리의 실행 시간을 얻는 방법은?
저는 PHP에서 MySQL 쿼리를 실행하는데 시간이 얼마나 걸리는지 알고 싶습니다.PHP에서 MySQL 쿼리의 실행 시간을 얻을 수 있는 방법이 있습니까?
웹 서버의 로딩량에 따라 실행 시간이 달라지는지도 궁금합니다.서버가 다른 쿼리로 바쁘면 쿼리를 실행하는 데 더 많은 시간이 걸릴 것으로 예상됩니다.반면에 서버가 사용 중인 경우 쿼리는 차례만 기다린 후(병행으로 실행되는 쿼리 없이) 실행되고 대기 시간은 실행 시간에 포함되지 않는다고 상상할 수 있습니다.그렇다면 (두 가지 중) 어떤 시나리오가 맞을까요?
MySQL을 통해 이를 수행할 수 있는 방법이 있을 것입니다. 하지만 쉽고 신뢰할 수 있는 방법은 PHP의 것을 사용하는 것입니다.microtime
function - 현재 시간을 밀리초로 반환합니다.
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
'programing' 카테고리의 다른 글
인증된 것과 완전히 인증된 것의 차이 (0) | 2023.09.18 |
---|---|
지시어 @Inputs에서 대괄호 [ ]를 사용할 때와 사용하지 않을 때는? (0) | 2023.09.18 |
Twitter 부트스트랩 모달의 크기를 콘텐츠에 따라 동적으로 조정하는 방법 (0) | 2023.09.18 |
파워셸에 선택 문자열이 있는 검색 패턴 제외 (0) | 2023.09.18 |
팬더는 행별 최소값을 두 개 이상의 열로 얻습니다. (0) | 2023.09.18 |