
--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