• 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문 최적화
    3. 최적화 및 인덱스
    4. 데이터베이스 구조의 최적화
    5. InnoDB 테이블의 최적화
    1. InnoDB 테이블의 스토리지 레이아웃 최적화
    2. InnoDB 트랜잭션 관리 최적화
    3. InnoDB 로깅 최적화
    4. InnoDB 테이블의 대량 데이터로드
    5. InnoDB 쿼리 최적화
    6. InnoDB DDL 작업의 최적화
    7. InnoDB 디스크 I / O 최적화
    8. InnoDB 구성 변수의 최적화
    9. 많은 테이블이있는 시스템에 대한 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.5.4 InnoDB 테이블의 대량 데이터로드

이러한 성능 팁 섹션 8.2.2.1 "INSERT 문 속도" 의 빠른 삽입 일반적인 지침을 보완하는 것입니다.

  • InnoDB 데이터를 가져 오는 경우 자동 커밋 모드에서 삽입마다 디스크에 로그의 플래시를 실행하기 위해 그것을 해제합니다. 가져 오기 작업시 자동 실행을 해제하려면 그것을, SET autocommit 문과 COMMIT 문으로 묶습니다.

     SET autocommit = 0;
    ... SQL import statements ...
     COMMIT;
    

    mysqldump 옵션 --opt 는 그들을 SET autocommit 문과 COMMIT 문 사이 않더라도 InnoDB 테이블에 빠르게 가져올 덤프 파일을 만듭니다.

  • 부 키에 UNIQUE 제약이있는 경우 가져 오기 세션 동안 고유성 검사를 일시적으로 해제하여 테이블 가져 오기 속도를 높일 수 있습니다.

     SET unique_checks = 0;
    ... SQL import statements ...
     SET unique_checks = 1;
    

    큰 테이블의 경우, InnoDB 는 삽입 버퍼를 사용하여 보조 인덱스 레코드를 일괄 적으로 쓸 수 있기 때문에 이로 인해 대량의 디스크 I / O가 절약됩니다. 데이터 중복 키가 포함되어 있지 않은지 확인하십시오.

  • 테이블에 FOREIGN KEY 제약이있는 경우 가져 오기 세션 사이의 외부 키 체크를 해제하여 테이블 가져 오기 속도를 높일 수 있습니다.

     SET foreign_key_checks = 0;
    ... SQL import statements ...
     SET foreign_key_checks = 1;
    

    큰 테이블의 경우, 이렇게하면 디스크 I / O를 줄일 수 있습니다.

  • 많은 행을 삽입 할 필요가있는 경우 여러 행 INSERT 구문을 사용하여 클라이언트와 서버 사이의 통신 오버 헤드를 줄일 수 있습니다.

     INSERT INTO yourtable VALUES (1,2), (5,5), ...;
    

    이 팁은 InnoDB 테이블뿐만 아니라 모든 테이블에 삽입 유효합니다.

  • 자동 증가 열이있는 테이블에 대량 삽입을 실행하는 경우 innodb_autoinc_lock_mode 를 기본값 인 1 대신 2로 설정합니다. 자세한 내용은 섹션 14.6.5.2 "구성 가능한 InnoDB의 자동 증가 잠금" 을 참조하십시오.

  • InnoDB FULLTEXT 인덱스에 데이터를로드 할 때 최고의 성능을 위해 다음과 같은 일련의 단계를 따릅니다.

    • 테이블 생성시 FTS_DOC_ID_INDEX 라는 고유 인덱스로, 형태 BIGINT UNSIGNED NOT NULL 컬럼 FTS_DOC_ID 을 정의합니다. 예 :

       CREATE TABLE t1 (
       FTS_DOC_ID BIGINT unsigned NOT NULL AUTO_INCREMENT,
       title varchar (255) NOT NULL DEFAULT "
       text mediumtext NOT NULL,
       PRIMARY KEY (`FTS_DOC_ID`)
       ) ENGINE = InnoDB DEFAULT CHARSET = latin1;
       CREATE UNIQUE INDEX FTS_DOC_ID_INDEX on t1 (FTS_DOC_ID);
                    
    • 테이블에 데이터를로드합니다.

    • 데이터가로드되면 FULLTEXT 인덱스를 만듭니다.

    참고

    테이블 생성시 FTS_DOC_ID 컬럼을 추가하는 경우 FTS_DOC_ID 는 각 INSERT 또는 UPDATE 따라 단조롭게 증가 될 필요가 있기 때문에 FULLTEXT 인덱스 설정된 컬럼이 업데이트 된 때 FTS_DOC_ID 컬럼이 업데이트되는 것을 확인 합니다. 테이블 생성시 FTS_DOC_ID 를 추가하지 않고 InnoDB 자동으로 DOC ID를 관리하도록 한 경우, InnoDB 는 다음 CREATE FULLTEXT INDEX 호출에서 FTS_DOC_ID 숨기기 열로 추가합니다. 그러나이 방법은 성능에 영향을 테이블 재구성이 필요합니다.


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