>  기사  >  Java  >  자바 인터뷰 - 느린 쿼리

자바 인터뷰 - 느린 쿼리

王林
王林앞으로
2020-11-20 15:24:3910031검색

자바 인터뷰 - 느린 쿼리

먼저 인터뷰 질문을 살펴보겠습니다:

인터뷰 질문: SQL 쿼리 작업이 느린지 판단하는 방법과 최적화 방법(알리바바 인터뷰 질문)

인터뷰 질문: MySQL 느린 쿼리 활성화, 명령문 분석 (알리바바 인터뷰 질문)

(학습 영상 공유: java 교육 영상)

1. mysql 느린 쿼리 활성화

방법 1: 구성 파일 수정

my.ini에 몇 줄 추가:

[mysqlld]
//定义查过多少秒的查询算是慢查询,我这里定义的是2秒
long_query_time=2

#5.0、5.1等版本配置如下选项
log-slow-queries="mysql_slow_query.log"
#5.5及以上版本配置如下选项
slow-query-log=On
slow_query_log_file="mysql_slow_query.log"

//记录下没有使用索引的query
log-query-not-using-indexes

( 관련 학습 영상 공유 : java 인터뷰 질문 및 답변)

방법 2: MySQL 데이터베이스를 통해 느린 쿼리 활성화

mysql>set global slow_query_log=ON
mysql>set global long_query_time = 3600;
mysql>set global log_querise_not_using_indexes = ON;

두 번째, 느린 쿼리 작업 실행

사실 의미 있는 느린 쿼리를 실행하기 어렵습니다. 직접 테스트해보면 20만 개의 데이터가 담긴 대용량 테이블을 쿼리하더라도 몇 초밖에 걸리지 않습니다. 대신 다음 명령문을 사용할 수 있습니다.

SELECT SLEEP(10);

3. 느린 쿼리 수 확인
다음 SQL 문을 사용하여 실행된 느린 쿼리 수를 확인합니다.

show global status like '%slow%';

4. 느린 쿼리 로그 분석

방법 1: 도구를 통한 분석

MySQL에는 느린 쿼리 로그를 분석하기 위한 mysqldumpslow 도구가 함께 제공됩니다. 또한 몇 가지 유용한 오픈 소스 도구가 있습니다.

여기서는 저장된 로그 이름이 long.log라고 가정합니다.

가장 많은 레코드가 포함된 10개의 SQL 문 나열:

mysqldumpslow -s c -t 10 long.log

가장 많은 레코드 세트를 반환하는 10개의 SQL 문 나열:

mysqldumpslow -s r -t 10 long.log

방법 2: 직접 분석 mysql 속도 저하 쿼리 로그

# Time: 121017 17:38:54 
# User@Host: root[root] @ localhost [127.0.0.1] 
# Query_time: 3.794217 Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 4194304 
SET timestamp=1350466734; 
select * from wei where text='orange'; 
# Time: 121017 17:46:22 
# User@Host: root[root] @ localhost [127.0.0.1] 
# Query_time: 3.819219  Lock_time: 0.000000 Rows_sent: 0  Rows_examined: 4194304 
SET timestamp=1350467182; 
select * from wei where text='long';

관련 권장 사항: Java 입문 튜토리얼

위 내용은 자바 인터뷰 - 느린 쿼리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제