• 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문 최적화
    2. DML문 최적화
    1. NSERT문의 속도
    2. UPDATE문의 속도
    3. DELETE 문의 속도
    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.2.1 INSERT 문의 속도

삽입의 속도를 최적화하려면 많은 작은 작업을 하나의 큰 작업에 결합합니다. 이상적으로는 단일 연결을 만들고 많은 새로운 행의 데이터를 한번에 전송하고 모든 인덱스의 업데이트와 일관성 검사를 마지막까지 연기합니다.

행의 삽입에 필요한 시간은 다음 요소에 따라 결정됩니다. 여기서의 숫자는 대략적인 비율을 보여줍니다.

  • 연결 : (3)

  • 서버에 쿼리 전송 : (2)

  • 쿼리의 해석 : (2)

  • 행 삽입 : (1 × 행 크기)

  • 인덱스 삽입 : (1 × 인덱스 수)

  • 클로우즈 : (1)

여기에는 테이블을 여는 초기 오버 헤드를 고려하지 않습니다. 이것은 동시 실행 쿼리마다 한 번씩 실행됩니다.

테이블의 크기에 따라 log N 만 인덱스의 삽입 속도가 느려집니다 (B 트리 인덱스 인로).

다음 방법을 사용하여 삽입 속도를 높일 수 있습니다.

  • 동일한 클라이언트에서 동시에 여러 행을 삽입하려면 여러 VALUES 목록에서 INSERT 문을 사용하여 동시에 여러 행을 삽입합니다. 이것은 개별 단일 행 INSERT 문을 사용하는 것보다 훨씬 (경우에 따라서는 수배) 빨라집니다. 하늘이 아닌 테이블에 데이터를 추가하는 경우 데이터 삽입을 더 빨리하기 위해 bulk_insert_buffer_size 변수를 조정할 수 있습니다. 섹션 5.1 "서버 시스템 변수" 를 참조하십시오.

  • 텍스트 파일에서 테이블을로드하는 경우는 LOAD DATA INFILE 을 사용합니다. 일반적으로 INSERT 문을 사용하는 경우보다 20 배 빨라집니다. 섹션 13.2.6 "LOAD DATA INFILE 구문" 을 참조하십시오.

  • 열에 기본값이있는 것을 이용합니다. 삽입 값이 기본값과 다른 경우에만 명시 적으로 값을 삽입합니다. 이렇게하면 MySQL이 실행해야하는 분석이 줄어들고 삽입 속도가 향상됩니다.

  • InnoDB 테이블에 고유 팁, 섹션 8.5.4 "InnoDB 테이블의 대량 데이터로드" 를 참조하십시오.

  • MyISAM 테이블에 고유 팁, 섹션 8.6.2 "MyISAM 테이블의 대량 데이터로드" 를 참조하십시오.


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