개발자 Q&A

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

2025.07.02 19:13

--log-queries-not-using-indexes 옵션에 대한 질문

목록
  • CDN광신도 1일 전 2025.07.02 19:13
  • 17
    1
MySQL의 성능 최적화에 관심이 있습니다.
--log-queries-not-using-indexes 옵션을 사용하면 쿼리 로그에 인덱스를 사용하지 않은 쿼리 정보가 기록되는데, 이 옵션의 목적과 사용 방법을 알려주세요.
특히 인덱스를 사용하지 않은 쿼리가 무엇인지 어떻게 확인할 수 있는지 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  1일 전



    --log-queries-not-using-indexes 옵션은 MySQL에서 인덱스를 사용하지 않은 쿼리 정보를 쿼리 로그에 기록하는 옵션입니다.

    이 옵션을 사용하면 MySQL 서버가 인덱스를 사용하지 않은 쿼리를 실행했을 때, 쿼리 로그에 해당 쿼리 정보를 기록합니다.

    이 옵션을 사용하는 이유는 인덱스를 사용하지 않은 쿼리가 많은지 확인하고, 해당 쿼리를 인덱스를 사용하도록 수정하는 데 도움이 됩니다.

    인덱스를 사용하지 않은 쿼리는 다음과 같은 경우에 발생할 수 있습니다.

    - WHERE, JOIN, ORDER BY, GROUP BY, HAVING 절에 인덱스가 존재하지 않을 때
    - 인덱스를 사용하지 않도록 명시적으로 설정된 쿼리일 때
    - 인덱스를 사용하지 않도록 MySQL 서버가 자동으로 인덱스를 사용하지 않도록 결정한 쿼리일 때

    인덱스를 사용하지 않은 쿼리를 확인하는 방법은 다음과 같습니다.

    1. MySQL 서버의 쿼리 로그를 확인합니다. 쿼리 로그에는 인덱스를 사용하지 않은 쿼리 정보가 기록되어 있습니다.
    2. MySQL 서버의 slow query log를 확인합니다. slow query log에는 실행 시간이 느린 쿼리 정보가 기록되어 있습니다. 인덱스를 사용하지 않은 쿼리는 일반적으로 실행 시간이 느립니다.
    3. MySQL 서버의 EXPLAIN 문을 사용하여 쿼리의 실행 계획을 확인합니다. EXPLAIN 문을 사용하여 쿼리의 실행 계획을 확인하면 인덱스를 사용하지 않은 쿼리가 무엇인지 확인할 수 있습니다.

    --log-queries-not-using-indexes 옵션을 사용하는 방법은 다음과 같습니다.

    1. MySQL 서버의 my.cnf 파일을 편집합니다. my.cnf 파일은 MySQL 서버의 설정 파일입니다.
    2. log_queries_not_using_indexes 옵션을 활성화합니다. 옵션을 활성화하려면 1을 입력합니다.
    3. MySQL 서버를 재시작합니다. MySQL 서버를 재시작하면 옵션을 적용됩니다.

    예를 들어, my.cnf 파일은 다음과 같이 편집할 수 있습니다.

    [mysqld]
    log_queries_not_using_indexes = 1

    MySQL 서버를 재시작하면 --log-queries-not-using-indexes 옵션이 활성화됩니다.

    2025-07-02 19:14

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

검색

게시물 검색