• 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.3 테이블 크기 제한

MySQL 데이터베이스의 사실상 최대 테이블 크기는 일반적으로 MySQL의 내부 제한이 아니라 운영 체제의 파일 크기에 대한 제약에 의해 판단합니다. 다음 표는 운영 체제의 파일 크기 제한에 대한 몇 가지 예를 보여줍니다. 이것은 대략적인 안내 일뿐 확실한 것은 없습니다. 가장 새로운 정보는 사용중인 운영 체제에 고유의 문서를 반드시 확인하십시오.

운영 체제 파일 크기 제한
Win32 (FAT / FAT32)

2GB / 4GB

Win32 (NTFS) 2TB (이를 초과 할 수 있음)
Linux 2.2-Intel 32 비트 2GB (LFS : 4GB)
Linux 2.4+ (ext3 파일 시스템 사용) 4TB
Solaris 9/10 16TB
OS X (HFS +) 2TB

Windows 사용자의 경우 FAT 및 VFAT (FAT32)는 MySQL에서 실전 사용에 적합하다고 간주되지 않습니다. 대신 NTFS를 사용하십시오.

Linux 2.2에서는 ext2 파일 시스템 용 Large File Support (LFS) 패치를 사용하면 크기가 2G 바이트보다 큰 MyISAM 테이블을 얻을 수 있습니다. 대부분의 최신 Linux 배포는 커널 2.4 이상을 기반으로 필요한 LFS 패치는 모두 포함되어 있습니다. Linux 2.4에서는 큰 파일 (최대 2T 바이트)를 지원하는 ReiserFS에 대한 패치도 존재하고 있습니다. JFS와 XFS는 Linux에서 페타 바이트 이상의 파일이 있습니다.

Linux에서 LFS에 대한 자세한 소개는 http://www.suse.de/~aj/linux_lfs.html 의 Andreas Jaeger 씨의 "Large File Support in Linux"페이지를 참조하십시오.

전체 테이블 오류가 발생한 경우, 그 이유는 여러 가지가 있습니다.

  • 디스크가 꽉 찼을 가능성이있다.

  • InnoDB 스토리지 엔진이 여러 파일에서 만들 수있는 테이블 공간에 InnoDB 테이블을 보유하고있다. 따라서 테이블이 개별 파일의 최대 크기를 초과 할 수 있습니다. 테이블 공간은 원시 디스크 파티션을 포함 할 수 매우 큰 테이블이 허용됩니다. 최대 테이블 공간 크기는 64T 바이트입니다.

    InnoDB 테이블을 사용하는 경우, InnoDB 테이블 스페이스의 공간이 부족합니다. 이 경우 해결책은 InnoDB 테이블 공간을 확장하는 것입니다. 섹션 14.5.7 "InnoDB 로그 파일의 크기 나 변경 및 InnoDB 테이블 스페이스의 크기 변경" 을 참조하십시오.

  • 지원하는 파일 크기가 최대 2G 바이트의 운영 체제에서 MyISAM 테이블을 사용하고 데이터 파일 또는 인덱스 파일이 한계에 도달하고있다.

  • MyISAM 테이블을 사용하여 테이블에 필요한 공간이 내부 포인터 크기에 따라 허용되는 크기를 초과하고있다. MyISAM 에서는 데이터 파일과 인덱스 파일의 크기는 기본적으로 최대 256T 바이트이지만,이 제한은 65,536T 바이트 (256 7 - 1 바이트)의 최대 크기까지 변경할 수 있습니다.

    기본 제한보다 큰 MyISAM 테이블이 필요하며, 운영 시스템이 큰 파일을 지원하는 경우 CREATE TABLE 문은 AVG_ROW_LENGTH 옵션과 MAX_ROWS 옵션을 지원합니다. 섹션 13.1.17 "CREATE TABLE 구문" 을 참조하십시오. 서버는이 옵션을 사용하여 허용 테이블의 크기를 결정합니다.

    포인터 크기가 기존 테이블에 너무 작은 경우 테이블의 최대 크기를 늘리도록 ALTER TABLE 에서 옵션을 변경할 수 있습니다. 섹션 13.1.7 "ALTER TABLE 구문" 을 참조하십시오.

     ALTER TABLE tbl_name MAX_ROWS = 1000000000 AVG_ROW_LENGTH = nnn ;
    

    BLOB 또는 TEXT 컬럼을 포함하는 테이블에만 AVG_ROW_LENGTH 를 지정해야합니다. 이 경우, MySQL은 행 수만큼에 따라 필요한 공간을 최적화 할 수 없습니다.

    MyISAM 테이블의 기본 크기 제한을 변경하려면 내부 행 포인터에 사용되는 바이트 수를 설정 myisam_data_pointer_size 을 설정합니다. MAX_ROWS 옵션을 지정하지 않으면 새 테이블의 포인터 크기를 설정하기 위해이 값이 사용됩니다. myisam_data_pointer_size 값은 2-7로 지정할 수 있습니다. 4 값은 4G 바이트까지의 테이블을 허용하고 6 값은 256T 바이트까지의 테이블을 허용합니다.

    다음 문을 사용하면 데이터 파일과 인덱스 파일의 최대 크기를 확인할 수 있습니다.

     SHOW TABLE STATUS FROM db_name LIKE ' tbl_name ';
    

    myisamchk -dv / path / to / table-index-file도 사용할 수 있습니다. 섹션 13.7.5 "SHOW 구문」 또는 섹션 4.6.3 "myisamchk - MyISAM 테이블 유지 보수 유틸리티" 를 참조하십시오.

    MyISAM 테이블의 파일 크기 제한을 해결하는 다른 방법은 다음과 같습니다.

    • 큰 테이블이 읽기 전용 인 경우, myisampack를 사용하여이 테이블을 압축 할 수 있습니다. myisampack는 일반적으로 적어도 50 % 압축하기 때문에 실질적으로 더 큰 테이블을 보유 할 수 있습니다. myisampack에서 여러 테이블을 하나의 테이블에 병합 할 수 있습니다. 섹션 4.6.5 "myisampack - 압축 된 읽기 전용 MyISAM 테이블 생성" 을 참조하십시오.

    • MySQL은 단일 MERGE 테이블과 동일한 구조를 가지는 MyISAM 테이블의 모임을 처리 할 수있는 MERGE 라이브러리가 포함되어 있습니다. 섹션 15.7 "MERGE 저장 엔진" 을 참조하십시오.

  • MEMORY ( HEAP ) 스토리지 엔진을 사용하는 경우, max_heap_table_size 시스템 변수의 값을 늘려야합니다. 섹션 5.1 "서버 시스템 변수" 를 참조하십시오.


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