MySQL 지식 시스템 - 로그 지원

MySQL 지식 시스템 - 로그 지원

1. SQL 최적화 소개

1. 설명: 특정 요구 사항에 대해 결과 표시 시간을 단축하여 운영 효율성을 높이기 위해 더 나은 SQL 전략 또는 인덱스 전략을 사용하는 프로세스가 SQL 최적화입니다. 2. SQL 최적화는 데이터베이스 수준 최적화에 포함됩니다
. 우리가 일반적으로 SQL 최적화라고 부르는 것은 SQL 문과 인덱스를 최적화하는 것을 의미합니다.
3.SQL 최적화는 비즈니스와 함께 최적화되며, 최상의 최적화를 위해 다음 작업이 모두 달성되어야 하는 것은 아닙니다.

2. 기존 튜닝 아이디어(많은 솔루션 중 하나)

1. 느린 로그 확인 및 느린 쿼리 문 분석
2. 모든 느린 문을 특정 우선순위에 따라 하나씩 확인
3. 상위 SQL 분석, 디버깅 설명 및 명령문 실행 시간 확인
4. 조정 색인 또는 명령문 자체.

3. MySQL 로그 지원

1. MySQL 5.7의 로그 분류

MySQL의 로그는 오류 로그(롤백 등), 바이너리 로그(마스터-슬레이브),일반 쿼리 로그(쿼리 등 정보 기록)느린 쿼리 로그

2. 일반 쿼리 로그

1. 일반 쿼리 로그에는 설정된 클라이언트 연결 및 실행된 명령문이 기록됩니다
2. 일반 쿼리 로그가 켜져 있는지 확인하여 버전 show variables like '%version%'정보를 확인 합니다 일반 로그를 일시적으로 활성화/비활성화합니다(재시작 실패).
여기에 이미지 설명을 삽입하세요.
show variables like '%general%'
여기에 이미지 설명을 삽입하세요.

# 开启
set global general_log = on;
# 关闭
set global general_log = off; 

4. 다음을 통해 show variables like '%log_output%'로그 출력 형식을 확인하세요.
여기에 이미지 설명을 삽입하세요.

출력 형식: FILE, TABLE

  • FILE은 데이터베이스의 데이터 파일인 E:\Java\MySQL\data\LAPTOP-ZhangZiang.log에 저장됩니다.
  • TABLE은 데이터베이스 테이블 mysql/general_log에 저장됩니다.

일시적으로 출력 형식 설정(mysql을 다시 시작한 후에는 유효하지 않음)

# FILE
set global log_output = 'file';
# TABLE
set global log_output = 'table';
# 两者都输出
set global log_output = 'file,table';

3. 오류 로그

1. MySQL 오류 로그에는 MySQL 작동 중 더 심각한 경고 및 오류 메시지는 물론 MySQL 시작 및 종료에 대한 자세한 정보가 기록됩니다.
2. 다음을 통해 show variables like '%log_error%'오류 로그 구성 정보를 확인하세요.
여기에 이미지 설명을 삽입하세요.

  • binlog_error_action 오류 처리 방법 (ABORT_SERVER는 문제가 있으면 서비스를 종료하고 IGNORE_ERROR는 오류를 무시합니다.)
  • log_error 오류 로그 파일 이름 및 경로
  • log_error_verbosity 로깅 수준(값이 1이면 경고 정보가 기록됨을 나타내고 값이 1보다 크면 모든 경고 정보가 기록됨을 나타냄)

4. 바이너리 로그

1. 업데이트된 모든 데이터(신규, 삭제, 수정, 테이블 수정, 데이터베이스 생성 등)에 대한 기록을 포함합니다. SQL 정보
2. MySQL 마스터-슬레이브 구성은 이 로그 파일에 의존합니다
. 3. show variables like '%log_bin%'바이너리 파일 보기
여기에 이미지 설명을 삽입하세요.

4. 전역 매개변수를 수정하여 바이너리 파일을 열 수 없습니다. 전역 구성 파일(my.ini)
5. 열면 D:\mysql\mysql-8.0.26-winx64\data\ 디렉터리에 모든 바이너리 파일 목록이 저장되는 binlog.index 파일이 있습니다. MySQL 서비스를 다시 시작하거나 일정 시간이 지나면 바이너리 파일이 자동으로 추가됩니다. flush logs추가된 바이너리 파일 번호가 증가하며, 새로운 바이너리 파일을 생성하기 위한 명령어 가능
합니다 . 텍스트 편집기를 사용하여 보려면 도구를 사용해야 합니다.show binary logs
여기에 이미지 설명을 삽입하세요.

  1. 명령을 사용하여 show binlog events in 'binlog.000001'로그 파일을 봅니다.
    여기에 이미지 설명을 삽입하세요.
  2. 로그 파일이 있는 폴더의 경로에서 명령 도구를 실행합니다 mysqlbinlog. 명령에 로그 파일의 전체 경로를 작성할 수도 있습니다.
mysqlbinlog mysql-bin.000001 > e:/zane.sql

8. 테이블 삭제, 테이블 생성을 제외한 binlog의 모든 SQL 문은 암호화되어 있으므로 확인하고 싶으시면 다음 명령어를 사용하시면 됩니다.
콘솔에 직접 출력하시면 한자가 깨져서 나옵니다.
mysqlbinlog --base64-output=decode-rows -v mylogbin.000001 > D:/zane.sql

5. 느린 쿼리 로그

1. 실행 시간이 lone_query_time 초를 초과하는 쿼리 또는 인덱싱에 적합하지 않은 쿼리를 모두 기록합니다
2. lone_query_time의 기본 시간은 10초입니다. 즉, 10초를 초과하는 쿼리는 느린 쿼리로 간주됩니다
.3. 느린 쿼리 로그의 기본 이름은:hostname-slow.log입니다
여기에 이미지 설명을 삽입하세요.
.4.my.ini 파일 보기 외에도 my.ini 파일 show variables like '%quer%'을 통해서도 볼 수 있습니다.

  1. Slow_query_log는 느린 쿼리 로그 활성화 여부를 나타냅니다(기본적으로 활성화됨).
  2. Slow_query_log_file 느린 쿼리 로그 파일 이름

여기에 이미지 설명을 삽입하세요.

  • Slow_query_log: 느린 쿼리 로그 활성화 여부를 나타냅니다(기본적으로 활성화됨).
  • Slow_query_log_file: 느린 쿼리 로그 파일 이름
  • long_query_time: 느린 쿼리 임계값 설정, 이 시간을 초과하면 느린 쿼리가 됩니다. (이 값을 글로벌 파라미터로 직접 설정하는 것은 유효하지 않을 수 있습니다. 테스트 시 구성 파일을 직접 수정하는 것이 좋습니다.)
  • log_queries_not_using_indexes: 인덱스에 적합하지 않은 쿼리를 기록할지 여부

5. 느린 쿼리 로그 내용: 실행된 SQL, 실행 시간 등을 기록합니다.
여기에 이미지 설명을 삽입하세요.

Supongo que te gusta

Origin blog.csdn.net/qq_45867699/article/details/119102948
Recomendado
Clasificación