반응형
MySQL "wait_timeout"이 긴 쿼리에 적용되지 않습니까?
테스트하려고 합니다.wait_timeout
MySQL 설정은 무시되는 것 같습니다.
PHP 스크립트:
<?php
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
$sql = mysqli_connect('localhost','root','root','mysql');
$query = "SHOW VARIABLES WHERE Variable_name='wait_timeout';";
$result = $sql->query($query) or die($query.'<br />'.$sql->error);
$row = $result->fetch_object();
echo "wait_timeout = " . $row->Value . "<br/>\n";
$time_start = microtime_float();
$query = "SELECT SLEEP(2) FROM mysql.user;";
$sql->query($query) or die($query.'<br />'.$sql->error);
$time_end = microtime_float();
$time = $time_end - $time_start;
echo "Query completed in $time seconds<br/>\n";
echo "You got the page";
스크립트 출력:
wait_timeout = 2
Query completed in 8.0005459785461 seconds
You got the page
내 설정
mariadb-server-5.3.5
php5.3.6
일정 시간 후 MySQL이 쿼리를 강제로 타임아웃하려면 어떻게 해야 합니까?
둘다요.wait_timeout
그리고.interactive_timeout
는, 접속이 드롭 될 때까지의 비액티브하지 않은 시간입니다.따라서 연결이 폐기되기 전에 연결이 유휴 상태(쿼리를 실행하지 않음)여야 합니다.MySQLSLEEP()
는 쿼리를 실행하고 있기 때문에 카운트되지 않습니다.
장시간 실행 중인 쿼리를 수동으로 종료해야 합니다(MySQL이 대신 실행하도록 설정할 수 없습니다).대본에 쓸 수 있어요.사용하다SHOW PROCESSLIST
(또는 Innotop과 같은 외부 도구) 및KILL
.
언급URL : https://stackoverflow.com/questions/10027453/mysql-wait-timeout-not-being-honored-for-long-query
반응형
'programing' 카테고리의 다른 글
PHP와 함께 comet을 사용하시겠습니까? (0) | 2022.09.23 |
---|---|
NodeJS + ExpressJS에서 mysql DB에 대한 연결을 관리하는 올바른 방법 (0) | 2022.09.23 |
정수 불변 (0) | 2022.09.23 |
1개의 패스로 여러 개의 키가 입력되어 있는지 확인하려면 어떻게 해야 합니까? (0) | 2022.09.23 |
어떻게 하면 현재 시간을 알 수 있나요? (0) | 2022.09.17 |