-
Mysql 서버에서 실행되는 쿼리 분석기타기술 2011. 6. 27. 20:04
IBM Developerworks를 보다가 mysql 최적화에 관련된 흥미 있는 내용이 있어 로그로 남겨본다. 데이터베이스를사용해서 애플리케이션을 개발할 때, 성능 이슈를 해결하기 위해 느린 쿼리를 찾아내야 하는 일이 종종 있는데 해당 기사에서는 Mysql을 데이터베이스로 사용할 때 느린 쿼리를 잡아내는 방법에 대한 소개가 있어 좀더 상세히 적어본다.
Mysql에서는 실행 시간이 오래 걸리는 쿼리를 잡아내게 위해서는 먼저, 설정파일에 로그 파일을 기록할 위치와, 몇 초 이상 걸리는 쿼리를잡아낼 건지를 설정해야 한다.
설정하는 방법에는 두 가지 방법이 있는데 먼저 이야기할 것은 config파일에설정하는 방법이다. 보통 리눅스에 mysql을 설치할 경우설정 파일(my.출)이 /etc/mysql/my.cnf에 위치한다. 해당 파일을 열어서 다음 부분의 주석을 해제하면 된다.
[mysqld]
#기타 설정…
#log_slow_queries = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
번째 방법은 mysql 데몬이 처음 실행될 때 위의 값들을 아규먼트로전달하는 방법이다. 역시 리눅스(우분투) 기준으로 설명하면 /etc/init.d 디렉토리에 mysql 데몬 시작 스크립트를 다음과 같이 수정하면 된다.
/usr/bin/mysqld_safe --log_slow_queries=/var/log/mysql/mysql-slow.log--long_query_time=2 > /dev/null
설정 파일의 위치는 윈도용 mysql의 경우(5.0기준) 다음과 같다.
경로 설정영역 WINDIR/my.ini Global Options C:\my.cnf Global Options INSTALLDIR\my.ini Global Options Default-extra-file --default-extra-file 옵션에 에 지정된 파일(ex: --default-extra-file=path) 유닉스계열의 mysql의 경우 설정파일의 위치는 다음과 같다.
경로 설정영역 /etc/my.cnf Global Options $MYSQL_HOME/my.cnf Server-Specific options Default-extra-file --default-extra-file 옵션에 에 지정된 파일(ex: --default-extra-file=path) ~/.my.cnf User-specific-options * 디벨로퍼워크 참조 URL
http://www.ibm.com/developerworks/kr/library/os-5waystunelamp/index.html?ca=drs-'기타기술' 카테고리의 다른 글
도제식 수련 in SW (0) 2011.08.27 EA(Enterprise Architect)와 SVN 연동하기 (0) 2011.08.04 수렴진화, 그리고 좋은 설계 (0) 2011.07.25 개발자는 나이가 들수록 실력이 좋아진다? (3) 2011.07.19 잘못된 소스 파일 인코딩으로 인한 메이븐 컴파일 오류 (0) 2011.07.06