MySQL에서 느린 쿼리 로그 활성화

Mehvish Ashiq 2023년1월30일
  1. MySQL slow_query_log
  2. Windows/Ubuntu에서 MySQL slow_query_log 활성화
MySQL에서 느린 쿼리 로그 활성화

오늘은 Windows 및 Ubuntu 20.04에서 MySQL 셸을 사용하여 MySQL에서 slow_query_log를 활성화할 것입니다. 이 자습서에서는 MySQL 버전 8.0 및 Ubuntu 20.04를 사용합니다.

MySQL slow_query_log

MySQL slow_query_log에는 실행하는 데 long_query_time초 이상을 소비하고 검사할 행(레코드)이 min_examined_row_limit개 이상 필요한 SQL 문이 포함되어 있습니다.

MySQL slow_query_log에서 볼 수 있는 SQL 쿼리는 실행하는 데 상당한 시간이 소요되는 쿼리입니다. 따라서 최적화가 필요한 후보입니다.

기본적으로 느린 쿼리 로그는 비활성화되어 있습니다. Windows 및 Ubuntu 20.04에서 활성화하는 방법을 살펴보겠습니다.

Windows/Ubuntu에서 MySQL slow_query_log 활성화

아래 주어진 쿼리는 Windows 및 Ubuntu 운영 체제에서 실행할 수 있습니다. 먼저 MySQL 셸을 입력한 후 다음 명령을 실행하여 MySQL slow_query_log를 활성화해야 합니다.

예제 코드:

mysql> SET GLOBAL slow_query_log = 'ON';

이제 다음 쿼리를 실행하여 slow_query_log가 활성화되었는지 확인합니다.

예제 코드:

mysql> SHOW VARIABLES LIKE '%slow%';

출력:

+-----------------------------+--------------------------+
| Variable_name               | Value                    |
+-----------------------------+--------------------------+
| log_slow_admin_statements   | OFF                      |
| log_slow_extra              | OFF                      |
| log_slow_replica_statements | OFF                      |
| log_slow_slave_statements   | OFF                      |
| slow_launch_time            | 2                        |
| slow_query_log              | ON                       |<====================
| slow_query_log_file         | DESKTOP-QF52OT4-slow.log |
+-----------------------------+--------------------------+
7 rows in set (0.01 sec)

또는 다음과 같이 명령을 실행하여 slow_query_log가 활성화되었는지 여부를 확인할 수도 있습니다.

예제 코드:

mysql> SHOW VARIABLES LIKE '%quer%';

출력:

+----------------------------------------+--------------------------+
| Variable_name                          | Value                    |
+----------------------------------------+--------------------------+
| binlog_rows_query_log_events           | OFF                      |
| ft_query_expansion_limit               | 20                       |
| have_query_cache                       | NO                       |
| log_queries_not_using_indexes          | OFF                      |
| log_throttle_queries_not_using_indexes | 0                        |
| long_query_time                        | 10.000000                |
| query_alloc_block_size                 | 8192                     |
| query_prealloc_size                    | 8192                     |
| slow_query_log                         | ON                       |<=========
| slow_query_log_file                    | DESKTOP-QF52OT4-slow.log |
+----------------------------------------+--------------------------+
10 rows in set (0.00 sec)

두 출력에서 ​​두 번째 마지막 행을 참조하십시오(위에서 제공). slow_query_log는 현재 ON입니다.

slow_query_log를 활성화하면 다른 옵션도 활성화할 수 있습니다. 예를 들어, 쿼리가 기록되기 전에 실행하는 데 필요한 시간을 업데이트할 수도 있습니다.

예제 코드:

mysql> SET GLOBAL long_query_time = 20;
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

관련 문장 - MySQL Query