방법: 1. 느린 쿼리가 활성화되지 않은 경우 "set global Slow_query_log='ON';"을 사용하여 느린 쿼리를 활성화합니다. 2. "set global Slow_query_log_file=path"를 사용하여 느린 쿼리 파일 저장 위치를 설정합니다. "subl path"를 사용하세요. 파일을 쿼리하면 됩니다.
이 튜토리얼의 운영 환경: centos 7 시스템, mysql8.0.22 버전, Dell G3 컴퓨터.
Mysql에서 느린 sql 문 검색 기록
느린 쿼리 로그 Slow_query_log는 느린 sql 문을 찾기 위해 쿼리 로그를 사용합니다. SQL을 최적화할 수 있습니다.
mysql 데이터베이스에 로그인하세요:
1. 현재 느린 쿼리가 켜져 있는지 확인하세요. 그렇지 않다면
켜고 느린 쿼리에 지정된 시간:
show variables like 'slow_query_log'; show variableslike 'long_query_time';
쿼리 후 결과가 OFF인 경우 관련 설정을 통해 ON으로 변경해야 합니다:
set global slow_query_log='ON';
느린 쿼리 추적 시간을 1초로 설정:
이렇게 설정한 후에는 세상이 not 즉시 1초가 되며 데이터베이스가 다시 시작된 후에 적용됩니다:
2 느린 쿼리 로그 파일이 저장되는 위치를 설정합니다:
set global slow_query_log_file='/var/lib/mysql/test_1116.log';
3 다음 구성 파일을 봅니다.
sudo subl /var/lib/mysql/test_1116.log
지식 넓히기:
SELECT * FROM `slow_log` where start_time > '2019/05/19 00:00:00';
select * from information_schema.processlist
select * from information_schema.processlist where info is not null order by time desc
rows_sent 및rows_examined는 전송된 결과 수와 쿼리로 검색된 행 수입니다. 이 두 값은 특히 row_examined에서 중요합니다. 기본적으로 어떤 쿼리가 주의를 기울여야 할 "큰" 쿼리인지 알려줍니다.
실제 운영에서도 많은 행_검토된 쿼리를 하나씩 분석하고, 인덱스를 추가하고, 쿼리문 작성을 수정하여 문제를 완벽하게 해결합니다.
결과 처리 및 반영
느린 쿼리를 모두 확인하고 수정한 결과, 현재 분당 MySQL 느린 쿼리 수가 1~2개 사이를 맴돌고 있으며, CPU 부하도 매우 낮습니다. 문제는 기본적으로 해결되었습니다.
문제 원인을 생각해보면 주의할 점은 다음과 같습니다.
1. 데이터베이스 문제는 온라인에 접속할 때 문제를 일으키지 않는 경우가 많지만, 잘못된 쿼리 문이 지속적으로 누적되는 과정이 있습니다. 시스템 부하가 점차 증가할 예정입니다. , 낙타의 등을 부러뜨리는 마지막 빨대는 종종 설명할 수 없는 것 같습니다
2. 마지막 빨대는 전혀 존재하지 않을 수도 있습니다. 기능의 출시나 출시가 아니라 사용자 사용량이 증가함에 따라. , 데이터의 양이 증가합니다
3. 문제의 출현은 누적되는 과정이므로 출시하기 전에 각 코드를 검토해야 합니다
4. 인덱스 추가가 매우 중요합니다
5. 느린 쿼리 모니터링도 Zabbix 모니터링 범위에 포함되어야 합니다.
추천 학습: mysql 비디오 튜토리얼
위 내용은 mysql에서 느린 SQL 문을 쿼리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!