@eugeneledenev

Как написать бесконечный по времени sql запрос?

Тестирую скрип убивания долгих запросов.
Нужно придумать запрос который будет выполняться очень долго.
  • Вопрос задан
  • 714 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
select sleep(столькосекундскольконравится);

Плюс см https://dev.mysql.com/doc/refman/5.7/en/server-sys...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@eugeneledenev Автор вопроса
Если кому-то пригодится скрипт убивания зависшего SQL процесса:
<?php

include('../config.php'); //подключаем файл конфигурации cms. оттуда берем настройки БД
$maxquerytime = 200;//максимальное время запроса в секундах

$db = DB_DATABASE;//THE NAME OF YOUR MYSQL DATABASE
$user = DB_USERNAME;//YOUR USERNAME TO ACCESS MYSQL                                                                     
$pass = DB_PASSWORD;//YOUR PASSWORD TO ACCESS MYSQL                                                                         
$host = DB_HOSTNAME;//THE ADDRESS OF YOUR MYSQL SERVER                                                                      
 
$link = mysql_connect($host, $user, $pass);// Connect to the database
if ($link) echo '<b>OK.</b> - Soedinenie ustanovleno.';
else die('<b>Error</b>'); 
mysql_select_db($db);
mysql_query("SET NAMES 'utf8'"); 
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET SESSION collation_connection = 'utf8_general_ci'");

$result = mysql_query("SHOW FULL PROCESSLIST");
while ($row=mysql_fetch_array($result)) {
  $process_id=$row["Id"];
  if ($row["Time"] > $maxquerytime ) {
    $sql="KILL $process_id";
    echo "<br>Убит процесс ".$row["Info"]." - ".$sql;
    mysql_query($sql);
  }
}
?>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы