• 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 테이블의 최적화
    6. MyISAM 테이블의 최적화
    7. MEMORY 테이블 최적화
    8. 쿼리 실행 계획의 이해
    9. 버퍼링과 캐시
    10. 잠금 작업의 최적화
    1. 내부 잠금 방법
    2. 테이블 잠금 문제
    3. 동시 삽입
    4. 메타 데이터 잠금(Metadata Locking)
    5. 외부 잠금(External Locking)
    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.10.3 동시 삽입

MyISAM 스토리지 엔진은 특정 테이블에 대한 읽기 및 쓰기 충돌을 줄이기 위해 동시 삽입을 지원하고 있습니다. MyISAM 테이블의 데이터 파일에 틈새 (도중 삭제 된 행)이없는 경우 SELECT 문이 테이블의 행을 읽는 것과 동시에 INSERT 문을 실행하여 테이블 끝에 행을 추가 할 수 있습니다. 여러 INSERT 문이 있으면 그들은 대기, SELECT 문과 동시에 순차적으로 실행됩니다. 동시 INSERT 의 결과는 즉시 볼 수없는 수 있습니다.

concurrent_insert 시스템 변수를 설정하여 동시 삽입 작업을 변경할 수 있습니다. 기본적으로 변수는 AUTO (또는 1)로 설정되어 동시 삽입이 전제와 같이 처리됩니다. concurrent_insert 가 NEVER (또는 0)으로 설정되어있는 경우 동시 삽입은 비활성화됩니다. 변수가 ALWAYS (또는 2)로 설정되어있는 경우 행이 삭제 된 테이블에 대해 테이블 끝에서 동시 삽입이 허용됩니다. concurrent_insert 시스템 변수의 설명을 참조하십시오.

동시 삽입을 사용할 수있는 상황에서는 INSERT 문 DELAYED 수식을 사용할 필요가 거의 없습니다. 섹션 13.2.5.2 "INSERT DELAYED 구문" 을 참조하십시오.

바이너리 로그를 사용하는 경우, 동시 삽입은 CREATE ... SELECT 또는 INSERT ... SELECT 문 정상적인 삽입으로 변환됩니다. 이것은 백업 조작 중에 로그를 적용하여 테이블의 정확한 복사본을 확실하게 다시 만들 수 있도록하기 위해 이루어집니다. 섹션 5.2.4 "바이너리 로그" 를 참조하십시오. 또한 이러한 진술에 대해서는 선택 원본 테이블에 삽입이 차단되도록 해당 테이블에 읽기 잠금이 설정됩니다. 그 결과, 그 테이블에 대한 동시 삽입도 대기해야합니다.

LOAD DATA INFILE 에서 동시 삽입의 조건 (즉, 중간에 빈 블록을 포함하지 않는)을 충족 MyISAM 테이블을 사용하여 CONCURRENT 를 지정하면 다른 세션은 LOAD DATA 의 실행 중에 테이블에서 데이터를 검색 할 수 있습니다 . CONCURRENT 옵션의 사용은 동시에 테이블을 사용하는 다른 세션이없는 경우에도 LOAD DATA 의 성능에 약간의 영향이 있습니다.

HIGH_PRIORITY 를 지정하면 서버가 --low-priority-updates 옵션으로 시작되는 경우에 그 효과가 무시됩니다. 또한 동시 삽입도 사용되지 않습니다.

LOCK TABLE 의 경우 READ LOCAL 과 READ 의 차이는 READ LOCAL 가 잠금을 유지하는 동안 충돌하지 않는 INSERT 문 (동시 삽입)의 실행을 허용하는 것입니다. 그러나 잠금을 보유하는 동안 서버의 외부 프로세스를 사용하여 데이터베이스를 조작하는 경우이를 사용할 수 없습니다.

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