먼저 인터뷰 질문을 살펴보겠습니다:
인터뷰 질문: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!