EXPLAIN 출력을 사용하여 느린 MySQL 쿼리 최적화

아시 자크

다음 쿼리는 실행하는 데 6.6 초가 걸렸고 26 개의 행을 생성했습니다.

EXPLAIN 결과는 키를 사용하여 23 행과 48 행을 스캔하는 'ref'유형의 두 개의 간단한 쿼리입니다.

테이블 f에는 1000 개의 행이 있고 테이블 m에는 42000 개의 행이 있습니다.

seltype 테이블 유형 키 key keylen 참조 행 필터링 추가 

SIMPLE f ref PRIMARY, forum_site_id 4 const 23 100.00 Where 사용; 임시 사용; 파일 
                   정렬 사용 forum_site_id, 
                   forums_flag_list_new_posts 

SIMPLE m ref forum_msg_forum_id, forum_msg_forum_id 5 locali_db.f.id 48 100.00 where 
                   forum_msg_status, 
                   forum_msg_date 사용   

다음은 쿼리입니다 (아주 간단한 것입니다).

SELECT

    m.id AS msg_id,
    m.public_id AS msg_public_id,
       more fileds of this table ...

    f.id AS forum_id,
    f.public_id AS forum_public_id,
       more fileds of this table ...

FROM

    forum_msgs m
    INNER JOIN forums f ON
        m.forum_id = f.id

WHERE

    f.site_id = 19
    AND f.flag_list_new_posts = 1

    AND m.msg_date >= 1434803744
    AND m.status <> 11

ORDER BY
    m.msg_date DESC

LIMIT 
    100

WHERE 및 ORDER BY 절의 모든 필드는 INTEGER 유형이며 INDEX로 정의됩니다. forum_id 필드는 FOREIGN KEY로 정의됩니다.

터무니없는 성능의 원인이 무엇인지 알게되어 기쁩니다. :)

자르 하이

데이터베이스는 상당히 높은 QPS (최대 200 개)로 RDS에서 실행되었습니다. 평균적으로 디스크에 50 IOP / s가 발생했습니다. 인스턴스 스토리지 유형을 마그네틱에서 일반 SSD로 변경하면 문제가 해결되었습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

MySQL은 Explain으로 느린 쿼리를 최적화합니다.

분류에서Dev

느린 MySQL 쿼리, EXPLAIN은 임시 사용을 보여줍니다. 파일 정렬 사용

분류에서Dev

느린 MySQL 쿼리를 최적화하는 방법 (PHP를 통해)

분류에서Dev

MySQL 느린 쿼리 : 다음 쿼리를 최적화하는 방법은 무엇입니까?

분류에서Dev

느린 인덱싱 된 Select MySql 쿼리 최적화

분류에서Dev

MySQL 느린 하위 쿼리, JOIN을 사용해야합니까?

분류에서Dev

파일 정렬을 사용하여 MySql GROUP BY-쿼리 최적화

분류에서Dev

MySQL 느린 쿼리-Filesort 사용

분류에서Dev

달력 테이블이 느린 MySQL 하위 쿼리 수

분류에서Dev

결과가 제한보다 적을 때 mysql 느린 쿼리

분류에서Dev

MySQL은 트리거에서 최소 및 제한을 사용하여 쿼리를 최적화합니다.

분류에서Dev

InnoDB 테이블을 사용하여 느린 MySQL UPDATE 쿼리 속도를 높이는 방법

분류에서Dev

EF를 사용하여 합계를 사용하는 느린 mysql 쿼리

분류에서Dev

인덱스를 사용하여 mySql 쿼리 성능 최적화

분류에서Dev

Count 및 2 테이블을 사용하는 MYSQL 쿼리 최적화 질문

분류에서Dev

GROUP BY를 사용하는 MySQL의 매우 느린 하위 쿼리

분류에서Dev

내부 쿼리 mysql을 최적화하는 방법

분류에서Dev

mysql 쿼리 등록을 최적화하는 방법

분류에서Dev

별칭을 사용하여 하위 쿼리 선택 최적화

분류에서Dev

메인 쿼리의 LEFT JOIN과 서브 쿼리의 INNER JOIN을 사용하여 MySQL SELECT 쿼리를 최적화하는 방법은 무엇입니까?

분류에서Dev

Flink SQL을 사용하여 최적화 된 Top-N 쿼리

분류에서Dev

MySQL 하위 쿼리 최적화

분류에서Dev

mysql 하위 쿼리 문 최적화

분류에서Dev

인덱싱 된 열에 여러 OR 조건을 추가 한 후 느린 MySQL 쿼리

분류에서Dev

Regex를 사용하는 AWS Cloudwatch Log Insights 쿼리는 MySql 느린 쿼리 로그에 대한 열을 추출하지 않습니다.

분류에서Dev

mySQL을 사용하여 최우수 사용자 쿼리

분류에서Dev

하위 쿼리에서 느린 MySQL 업데이트 쿼리

분류에서Dev

MySQL 느린 SELECT 쿼리

분류에서Dev

mysql 느린 쿼리 문제

Related 관련 기사

  1. 1

    MySQL은 Explain으로 느린 쿼리를 최적화합니다.

  2. 2

    느린 MySQL 쿼리, EXPLAIN은 임시 사용을 보여줍니다. 파일 정렬 사용

  3. 3

    느린 MySQL 쿼리를 최적화하는 방법 (PHP를 통해)

  4. 4

    MySQL 느린 쿼리 : 다음 쿼리를 최적화하는 방법은 무엇입니까?

  5. 5

    느린 인덱싱 된 Select MySql 쿼리 최적화

  6. 6

    MySQL 느린 하위 쿼리, JOIN을 사용해야합니까?

  7. 7

    파일 정렬을 사용하여 MySql GROUP BY-쿼리 최적화

  8. 8

    MySQL 느린 쿼리-Filesort 사용

  9. 9

    달력 테이블이 느린 MySQL 하위 쿼리 수

  10. 10

    결과가 제한보다 적을 때 mysql 느린 쿼리

  11. 11

    MySQL은 트리거에서 최소 및 제한을 사용하여 쿼리를 최적화합니다.

  12. 12

    InnoDB 테이블을 사용하여 느린 MySQL UPDATE 쿼리 속도를 높이는 방법

  13. 13

    EF를 사용하여 합계를 사용하는 느린 mysql 쿼리

  14. 14

    인덱스를 사용하여 mySql 쿼리 성능 최적화

  15. 15

    Count 및 2 테이블을 사용하는 MYSQL 쿼리 최적화 질문

  16. 16

    GROUP BY를 사용하는 MySQL의 매우 느린 하위 쿼리

  17. 17

    내부 쿼리 mysql을 최적화하는 방법

  18. 18

    mysql 쿼리 등록을 최적화하는 방법

  19. 19

    별칭을 사용하여 하위 쿼리 선택 최적화

  20. 20

    메인 쿼리의 LEFT JOIN과 서브 쿼리의 INNER JOIN을 사용하여 MySQL SELECT 쿼리를 최적화하는 방법은 무엇입니까?

  21. 21

    Flink SQL을 사용하여 최적화 된 Top-N 쿼리

  22. 22

    MySQL 하위 쿼리 최적화

  23. 23

    mysql 하위 쿼리 문 최적화

  24. 24

    인덱싱 된 열에 여러 OR 조건을 추가 한 후 느린 MySQL 쿼리

  25. 25

    Regex를 사용하는 AWS Cloudwatch Log Insights 쿼리는 MySql 느린 쿼리 로그에 대한 열을 추출하지 않습니다.

  26. 26

    mySQL을 사용하여 최우수 사용자 쿼리

  27. 27

    하위 쿼리에서 느린 MySQL 업데이트 쿼리

  28. 28

    MySQL 느린 SELECT 쿼리

  29. 29

    mysql 느린 쿼리 문제

뜨겁다태그

보관