ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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

     
    log_slow_queries 프로퍼티는 로그파일의 위치를 long_query_time는 쿼리 실행 시간을 초단위로 나타낸다. 마지막으로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-

Designed by Tistory.