2. DBMS이야기/02. MySQL

MySQL general Log, slow long query, Session State, Session Profile

OSSW(Open Source System SoftWare 2014. 6. 23. 10:55

상용 DBMS에서 DB 성능 정보를 수집하는 다양한 Powerful한 기능이 오픈소스 DBMS에서는 상대적으로 약합니다.


튜너들에게는 특히 각 세션별 실행계획을 확인하고, 세션별 성능 Profile이 필수적으로 필요합니다. 


상용 DBMS처럼 막강하진 않지만, MySQL에서도 할 수 있습니다.


MySQL에서는 아래와 같은 방법으로 general Log, slow long query, Session State, Session Profile을 할 수 있습니다.


아래의 스크립트를 참조하세요.



/****************************************

MySQL에서 세션별 상태쿼리 내용 보기

쿼리 플랜 보기

****************************************/

 

-- general log 보기

SELECT * FROM mysql.general_log;

 

-- slow log

SELECT * FROM mysql.slow_log;

 

-- 세션별 현황, SQL Server의 sys.sysprocesses 와 유사.

SHOW PROCESSLIST;


-- 세션별 현황, SHOW PROCESSLIST와 비교해 쿼리가 Full 로 display 됨.

SHOW FULL PROCESSLIST;

 

-- 개별 세션 성능 Profiling 하기.

SET PROFILING = 1;

 

SHOW PROFILES\G

 

-- Quer Execute!

SELECT * FROM TB_1;

 

SHOW PROFILE;

/*

Status               Duration

starting                 0.000040

checking permissions       0.000008

Opening tables            0.000008

init                   0.000014

optimizing             0.000004

executing                0.000010

end                      0.000005

query end                0.000002

freeing items         0.000029

logging slow query    0.000003

cleaning up            0.000002

*/



By 윤성용, Microsoft SQL Server MVP @ South Korea.