개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.03 08:48

--log-queries-not-using-indexes 옵션 이해를 도와주세요

목록
  • 애자일광신도 1일 전 2025.05.03 08:48
  • 5
    1
제가 최근에 MySQL에서 --log-queries-not-using-indexes 옵션을 사용하여 비효율적인 쿼리를 분석하고자 했습니다. 그러나 이 옵션을 사용할 때 발생할 수 있는 로그파일의 크기가 너무 커져서 문제가 발생했습니다.

이 옵션을 사용할 때는 쿼리가 인덱스를 사용하지 않는 경우 로그파일에 기록되는데, 이러한 로그의 크기는 매우 커질 수 있습니다.

로그파일의 크기를 줄이기 위해 다음과 같은 방법을 사용할 수 있습니다.

1. 쿼리를 최적화하여 인덱스를 사용하도록 하세요.
2. 쿼리 로그를 시간별로 나누어 저장하세요.
3. 쿼리 로그에 포함할 정보를 줄이세요.

이러한 방법 중에서 제가 가장 궁금한 점은 쿼리 로그를 시간별로 나누어 저장하는 방법에 관한 것입니다.

--log-queries-not-using-indexes 옵션을 사용하여 쿼리 로그를 시간별로 나누어 저장하는 방법은 어떻게 되나요?

    댓글목록

    profile_image
    나우호스팅  1일 전



    --log-queries-not-using-indexes 옵션을 사용하여 쿼리 로그를 시간별로 나누어 저장하는 방법은 다음과 같습니다.

    1. MySQL 서버의 로그 파일 위치를 확인하세요. 일반적으로 MySQL 서버의 로그 파일은 `/var/log/mysql/` 또는 `/usr/local/mysql/data/`와 같은 디렉토리에 저장됩니다.
    2. 로그 파일을 시간별로 나누기 위해 `log-bin` 옵션을 사용하세요. 예를 들어, `log-bin=mysql-bin` 옵션을 사용하여 로그 파일을 `mysql-bin.000001`과 같이 시간별로 나누어 저장할 수 있습니다.
    3. `expire_logs_days` 옵션을 사용하여 로그 파일의 유지 기간을 설정하세요. 예를 들어, `expire_logs_days=3` 옵션을 사용하여 로그 파일을 3일 동안 유지하고 나머지 로그 파일을 삭제할 수 있습니다.
    4. `long_query_time` 옵션을 사용하여 쿼리 로그를 시간별로 나누어 저장할 때 사용할 시간을 설정하세요. 예를 들어, `long_query_time=10` 옵션을 사용하여 쿼리 로그를 10초 단위로 나누어 저장할 수 있습니다.

    예를 들어, 다음 명령어를 사용하여 MySQL 서버의 로그 파일 위치를 확인하고 로그 파일을 시간별로 나누어 저장할 수 있습니다.

    #hostingforum.kr
    sql
    
    -- 로그 파일 위치 확인
    
    SHOW VARIABLES LIKE 'log_bin';
    
    
    
    -- 로그 파일 이름 설정
    
    SET GLOBAL log_bin = 'mysql-bin';
    
    
    
    -- 로그 파일 유지 기간 설정
    
    SET GLOBAL expire_logs_days = 3;
    
    
    
    -- 쿼리 로그 시간 설정
    
    SET GLOBAL long_query_time = 10;
    
    


    위의 방법을 사용하여 로그 파일의 크기를 줄일 수 있습니다.

    2025-05-03 08:49

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 16,551건 / 4 페이지

검색

게시물 검색