http://www.mysqlkorea.co.kr
한글매뉴얼 5.0 , 한글매뉴얼 5.1 , MySQL 5.1 HA , 사용자매뉴얼
Advanced Knowle...  
엔지니어 노트  
블로그존  
글로벌 MySQL  
MySQL 5.5 GA  
MySQL 5.6 Developer  
최신글
프로시저에서 다…
프로시저에서 다…
mysql 단편화에 …
mssql -> mysql이…
sql 쿼리문 질문…
 
엔지니어 노트 > 개발자 존 > 엔지니어 노트
불필요한 mysql thread 일괄종료 프로시져
글쓴이 : royster   날짜 : 13-09-10 10:58   조회수 : 4077
-- 사용법
-- mysql> call sp_killid(300);   300초 초과한 thread 일괄 강제 종료
-- 필요에 따라 이벤트 스케줄러 및 Cron을 응용하면 되겠습니다.
 
 
DELIMITER $$
USE `test`$$
DROP PROCEDURE IF EXISTS `sp_killid`$$
CREATE  PROCEDURE `sp_killid`(
set_time INT
)
BEGIN
DECLARE is_loop INT DEFAULT 0;
DECLARE thisid INT;
DECLARE thisuser CHAR(20);
DECLARE thistime INT;
DECLARE cur1 CURSOR FOR
SELECT `ID`,`USER`,`TIME` FROM `information_schema`.`PROCESSLIST`;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET is_loop = 1;
 
  OPEN cur1;
    REPEAT
       FETCH cur1 INTO thisid,thisuser,thistime;
         IF NOT is_loop THEN
            IF thisuser<>'system user' AND thistime>set_time THEN
               KILL thisid;
            END IF;
         END IF;
    UNTIL is_loop END REPEAT;   
  CLOSE cur1;
 
END$$
DELIMITER ;
이전글 MySQL Fabric FAQ 
다음글 숫자만 뽑아내는 MySQL stored function 
MySQL Korea 사이트의 컨텐츠 소유권은 (주)상상이비즈에 있으므로 무단전재를 금합니다.
ⓒ 2010-2011 ssebiz All Rights Reserved.