• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 1. 최적화 개요
    2. SQL문 최적화
    1. SELECT문 최적화
    1. SELECT문 속도
    2. MySQL WHERE절 최적화 방법
    3. range 최적화
    4. 인덱스 병합 최적화
    5. 엔진 조건문 푸시 다운 최적화
    6. 인덱스 조건문 푸시 다운 최적화
    7. 인덱스 확장의 사용
    8. IS NULL 최적화
    9. LEFT JOIN과 RIGHT JOIN 최적화
    10. Nested Loop 조인 알고리즘
    11. 중첩 된 결합의 최적화
    12. 외부 조인의 단순화
    13. Multi-Range Read 최적화
    14. Block Nested Loop 조인과 Batched Key Access 결합
    15. ORDER BY 최적화
    16. GROUP BY 최적화
    17. DISTINCT 최적화
    18. 서브 쿼리의 최적화
    19. LIMIT 쿼리의 최적화
    20. 풀 테이블 스캔을 피하는 방법
    2. DML문 최적화
    3. 데이터베이스 권한 최적화
    4. INFORMATION_SCHEMA 쿼리 최적화
    5. 기타 최적화 Tips
    3. 최적화 및 인덱스
    4. 데이터베이스 구조의 최적화
    5. InnoDB 테이블의 최적화
    6. MyISAM 테이블의 최적화
    7. MEMORY 테이블 최적화
    8. 쿼리 실행 계획의 이해
    9. 버퍼링과 캐시
    10. 잠금 작업의 최적화
    11. MySQL 서버의 최적화
    12. 성능 측정
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

8.2.1.1 SELECT 문 속도

쿼리 최적화의 주요 고려 사항은 다음과 같습니다.

  • 느린 SELECT ... WHERE 쿼리를 빠르게하기 위해 먼저 확인하는 것은 인덱스 를 추가 할 수 있는지 여부입니다. WHERE 절에서 사용하는 컬럼에 인덱스를 설정하고 평가, 필터링 및 최종 결과의 검색 속도를 높일 수 있습니다. 불필요한 디스크 공간을 피하기 위해 응용 프로그램에서 사용되는 많은 관련 쿼리 속도를 약간 인덱스 세트를 구축합니다.

    인덱스는 결합 과 외래 키 등의 기능을 사용하여 여러 테이블을 참조하는 쿼리에 특히 중요합니다. EXPLAIN 문을 사용하여 SELECT 에 사용하는 인덱스를 확인할 수 있습니다. 섹션 8.3.1 "MySQL의 인덱스의 사용 방식" 및 섹션 8.8.1 "EXPLAIN으로 쿼리 최적화" 를 참조하십시오.

  • 과도한 시간이 걸리는 함수 호출 등의 쿼리 부분을 파악하고 조정합니다. 쿼리의 구축 방법에 따라 함수가 결과 세트의 모든 행에 1 회씩, 심지어 테이블의 모든 행에 대해 한 번씩 호출되는 등 크게 비 효율성을 확대시켜 있는 것이 있습니다.

  • 특히 큰 테이블의 경우 쿼리에서 전체 테이블 스캔 횟수를 최소화합니다.

  • ANALYZE TABLE 문을 정기적으로 사용하여 테이블 통계를 최신 상태로 유지하고 최적화 프로그램이 효율적인 실행 계획을 세우는 데 필요한 정보를 얻을 수 있도록합니다.

  • 튜닝 기법, 인덱싱 기법 및 각 테이블의 스토리지 엔진에 특정 구성 매개 변수에 대해 학습합니다. InnoDB 와 MyISAM 의 어디라도 쿼리의 성능을 가능하게하고 유지하기위한 일련의 지침이 있습니다. 자세한 내용은 섹션 8.5.5 "InnoDB 쿼리 최적화" 및 섹션 8.6.1 "MyISAM 쿼리 최적화" 를 참조하십시오.

  • 특히, MySQL 5.6.4 이상에서는 섹션 14.13.14 "InnoDB의 읽기 전용 트랜잭션 최적화" 기법을 사용하여 InnoDB 테이블의 단일 쿼리 트랜잭션을 최적화 할 수 있습니다.

  • 특히 최적화 프로그램 같은 변환의 일부를 자동으로 실행하면 이해가 어려울 같은 쿼리 변환을 피합니다.

  • 하나의 기본 지침을 제공하여 성능 문제가 쉽게 해결되지 않을 경우 EXPLAIN 계획을 읽고 인덱스, WHERE 절 조인 절 등을 조정하여 특정 쿼리의 내부 정보를 조사합니다. (어느 정도의 전문 기술에 이르고있는 경우는 EXPLAIN 계획을 읽을 수 모든 쿼리의 첫 번째 단계가 될 것으로 생각됩니다.)

  • MySQL이 캐시에 사용되는 메모리 영역의 크기와 특성을 조정합니다. InnoDB 버퍼 풀 , MyISAM 키 캐시 및 MySQL 쿼리 캐시의 효율적인 사용하여 2 번째 이후 메모리에서 결과가 얻어지기 때문에 반복 쿼리의 실행 속도가 향상합니다.

  • 캐시 메모리 영역을 사용하여 빠른 실행 쿼리에서 필요한 캐시 메모리를 줄이고, 응용 프로그램이 더 확장되도록 더욱 최적화 할 수 있습니다. 확장 성은 성능을 크게 저하시키지 않고 응용 프로그램에 더 많은 동시 사용자 큰 요청 등을 처리 할 수​​있는 것을 의미합니다.

  • 쿼리의 속도가 테이블에 동시에 액세스하는 다른 세션에 의해 영향을받을 수있는 잠금 문제를 처리합니다.


서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved