• 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. 최적화
  • 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. 제약 및 제한
  • 1. Stored Program 제한
    2. 조건 처리 제한
    3. 서버 측 커서 제한
    4. 서브 쿼리 제약
    5. View 제약
    6. XA 트랜잭션 제약
    7. Character Set 제약
    8. 성능 스키마 제약
    9. 플러그 인증 제한
    10. MySQL 제한
    1. 결합(join) 제한
    2. 데이터베이스 및 테이블 수 제한
    3. 테이블 크기 제한
    4. 테이블 컬럼 및 행 크기 제한
    5. .frm 파일 구조에 의해 부과되는 제한
    6. Windows 플랫폼의 제한
  • 28. MySQL 5.7 새로운 기능

27.10.5 .frm 파일 구조에 의해 부과되는 제한

각각의 테이블에는 테이블 정의를 포함 .frm 파일이 있습니다. 서버는 다음 식을 사용하여 64K 바이트의 상한에 파일에 포함 된 일부 테이블 정보를 확인합니다.

if (info_length+(ulong) create_fields.elements*FCOMP+288+
    n_length+int_length+com_length > 65535L || int_count > 255)

.frm 파일에 저장된 정보 중 식에 체크 된 부분은 64K 바이트의 제한을 초과 할 수 없습니다. 따라서 테이블 정의가이 크기에 도달하면 더 이상 열을 추가 할 수 없습니다.

식의 관련 인자는 다음과 같습니다.

  • info_length 는 "화면"에 필요한 영역입니다. 이것은 MySQL의 Unireg에서 상속받은 것입니다.

  • create_fields.elements 은 열 수 있습니다.

  • FCOMP 는 17입니다.

  • n_length 이름 당 1 바이트의 구분 문자를 포함한 모든 컬럼 이름의 전체 길이입니다.

  • int_length 는 ENUM 및 SET 컬럼의 값 목록과 관련된합니다. 이러한 맥락에서 "int"는 "정수"의 의미는 없습니다. 이것은 "간격"을 의미하고, ENUM 및 SET 컬럼의 총칭입니다.

  • int_count 는 고유의 ENUM 및 SET 정의의 수입니다.

  • com_length 는 열 코멘트의 총 길이입니다.

위의 등식은 허용되는 테이블 정의에 대해 여러 의미가 있습니다.

  • 긴 컬럼 이름을 사용하면 ENUM 또는 SET 컬럼을 포함하거나 열 코멘트를 사용하거나하는 경우와 마찬가지로, 컬럼의 최대 수가 줄어들 수 있습니다.

  • 테이블에 저장할 수있는 고유의 ENUM 및 SET 정의는 255 이하입니다. 동일한 요소 목록을 가진 컬럼이 제한 대해 동일한 것으로 간주됩니다. 예를 들어, 다음의 2 개의 컬럼이 테이블에 포함되는 경우, 이러한 정의가 동일하므로이 제한 대해 (2 개가 아닌) 하나 간주됩니다.

    e1 ENUM('a','b','c')
    e2 ENUM('a','b','c')
    
  • 고유의 ENUM 및 SET 정의의 요소 이름의 총 길이는 64K 바이트의 제한에 추가되기 때문에 특정 ENUM 컬럼의 요소 수에 대한 이론적 인 제한은 65,535이며, 실제 한도는 3000 미만 입니다.


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