>데이터 베이스 >MySQL 튜토리얼 >MySQL 느린 쿼리 로그 구성 및 자세한 사용 튜토리얼

MySQL 느린 쿼리 로그 구성 및 자세한 사용 튜토리얼

黄舟
黄舟원래의
2017-09-19 11:01:211497검색

느린 쿼리 로그는 너무 느린 일부 쿼리 문을 기록하는 데 사용되며, 이는 관리자가 문제를 분석하는 데 도움이 됩니다. 다음 문서에서는 주로 MySQL 느린 쿼리 로그의 구성 및 사용 튜토리얼을 샘플 코드를 통해 자세히 소개합니다. , 도움이 필요한 친구들이 참고할 수 있습니다.

머리말

MySQL 느린 쿼리 로그는 우리가 일상 업무에서 자주 접하는 기능입니다. MySQL 느린 쿼리 로그는 지정된 시간 임계값을 초과하는 쿼리 정보를 제공하여 성능 최적화를 위한 주요 참고 자료를 제공합니다. 매우 실용적인 기능입니다. MySQL 느린 쿼리 로그를 열고 구성하는 것은 기록할 파일(또는 테이블)을 지정할 수 있으며, 솔직히 말하면 느린 SQL을 기록할 수 있습니다. , sqlserver 또는 확장 이벤트의 추적과 비교하면(비록 이 두 가지가 유일한 것은 아니지만) MySQL의 구성은 항상 사람들에게 매우 상쾌한 느낌을 줍니다.

1. 느린 쿼리 로그 열기

일반적인 상황에서는 구성 파일에 slow_query_log = 1 구성만 추가하면 됩니다. 즉, 느린 쿼리 로그를 열려면 , Slow_query_log_file을 지정하지 않으면 호스트 이름 + 'slow'.log의 파일이 자동으로 생성됩니다. slow_query_log = 1配置,即打开慢查询日志,未指定slow_query_log_file的情况下,会自动生成一个以主机名+‘slow'.log 的文件。

  

二、默认情况下记录慢查询的时间阈值为10s

  

默认情况下,指定slow_query_log = 1的情况其启动MySQL,即可打开慢查询,自动生成一个默认的以主机名++‘slow'.log 的文件来记录超过执行超过10s的慢查询。

也可以显式指定慢查询的日志文件名称(不存在会自动创建)和记录慢查询的时间阈值(非默认的10s)。

  

注意:在配置文件中指定long_query_time的时候,不需要时间单位,只需要一个值,比如1就代表1s,如果带了时间单位,服务将无法启动。

  

如下是一个记录到日志文件中的慢sql的示例

  

三、记录慢查询日志到表

配置:需要添加一个log_output的配置,就可以将慢查询记录到表中了

mysql库下面有一个默认的slow_log表,可以直接将slow_query_log_file = slow_log

 

2. 기본적으로 녹음 속도가 느립니다. 쿼리 시간 임계값은 10초

 

Default입니다. 이 경우 slow_query_log = 1을 지정하고 MySQL을 시작하면 느린 쿼리를 열고 호스트 이름이 ++'slow'.log인 기본 파일을 자동으로 생성하여 더 많은 쿼리의 실행을 기록할 수 있습니다. 쿼리가 10초 이상 느립니다.

느린 쿼리 로그 파일 이름(존재하지 않는 경우 자동으로 생성됨)과 느린 쿼리 기록을 위한 시간 임계값(기본값이 10초 아님)을 명시적으로 지정할 수도 있습니다.

 참고:

구성 파일에 long_query_time을 지정하는 경우 시간 단위는 필요하지 않으며 1을 나타내는 1과 같은 값만 필요합니다. 시간 단위를 지정하면 서비스가 시작되지 않습니다.

 

로그 파일에 다음 내용이 기록됩니다. 느린 sql

 

3. 느리게 녹음 테이블에 쿼리 로그

🎜🎜구성: 느린 쿼리를 테이블에 기록하려면 log_output 구성을 추가해야 합니다🎜🎜🎜🎜mysql 라이브러리 아래에는 기본 Slow_log 테이블이 있습니다. slow_query_log_file = Slow_log를 직접 설정하여 느린 쿼리 로그를 테이블에 기록할 수 있습니다. . 🎜🎜  🎜🎜🎜기록된 느린 SQL은 다음과 같습니다. sql_text는 원본 SQL 텍스트가 아닌 바이너리 정보임을 알 수 있습니다🎜🎜  🎜🎜🎜CONVERT 함수를 통해 변환할 수 있습니다. 🎜🎜 🎜🎜🎜🎜🎜로그 파일과 테이블에 기록되는 느린 쿼리의 차이점에 대해: 🎜🎜🎜🎜  1. 느린 쿼리는 로그 파일과 테이블에 기록되는 경우 기록 자체는 크게 다르지 않습니다. , 느린 쿼리 쿼리의 실행 시간 정보는 미묘하게 정확할 수 없습니다, 🎜🎜  2. 느린 쿼리 정보를 테이블에 기록하면 쿼리하기에는 편리하지만 구조화된 데이터이기 때문에 속도가 느려질 수 있습니다. 느린 쿼리 로그 파일(플랫 텍스트 파일)에 기록하는 것이 조금 느립니다(개인 추측). 파일에 기록하는 경우 이를 구문 분석하려면 mysqldumpslow 도구가 필요합니다. 🎜🎜  3. 느린 쿼리는 실행에 실패한 쿼리를 기록하지 않습니다. 예를 들어 long_query_time을 10(10초)으로 설정하고 쿼리가 10초를 초과했지만 다른 이유로 실행에 실패하면 MySQL의 느린 쿼리는 기록되지 않습니다. 이 쿼리 정보를 기록할 수 있습니다. 🎜🎜🎜🎜요약🎜🎜🎜

위 내용은 MySQL 느린 쿼리 로그 구성 및 자세한 사용 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.