컴퓨터/노트북/인터넷
IT 컴퓨터 기기를 좋아하는 사람들의 모임방
이 섹션에서는 InnoDB
테이블, 인덱스, 테이블스페이스 및 InnoDB
스토리지 엔진 의 기타 측면에 대한 제한에 대해 설명합니다 .
-
테이블은 최대 1017개의 열을 포함할 수 있습니다(MySQL 5.6.9에서는 이전 제한인 1000개에서 증가). 가상 생성 열이 이 제한에 포함됩니다.
-
테이블은 최대 64개의 보조 인덱스를 포함할 수 있습니다 .
-
innodb_large_prefix
활성화된 경우 (기본값) 또는 행 형식InnoDB
을 사용하는 테이블의 경우 인덱스 키 접두사 제한은 3072바이트입니다 . 비활성화된 경우 인덱스 키 접두사 제한은 모든 행 형식의 테이블에 대해 767바이트입니다.DYNAMIC
COMPRESSED
innodb_large_prefix
innodb_large_prefix
더 이상 사용되지 않습니다. 향후 MySQL 릴리스에서 제거될 것으로 예상합니다.innodb_large_prefix
큰 인덱스 키 접두사를InnoDB
지원하지 않는 이전 버전과의 호환성을 위해 큰 인덱스 키 접두사를 비활성화하기 위해 MySQL 5.5에 도입되었습니다 .또는 행 형식
InnoDB
을 사용하는 테이블 의 경우 인덱스 키 접두사 길이 제한은 767바이트입니다 . 예를 들어, 문자 집합과 각 문자에 대해 최대 3바이트를 가정할 때 또는 열에서 열 접두사 인덱스가 255자를 초과 하면 이 제한에 도달할 수 있습니다 .REDUNDANT
COMPACT
TEXT
VARCHAR
utf8mb3
제한을 초과하는 인덱스 키 접두사 길이를 사용하려고 하면 오류가 반환됩니다. 복제 구성에서 이러한 오류를 방지하려면
innodb_large_prefix
복제본에서도 활성화할 수 없는 경우 소스에서 활성화하지 마십시오.MySQL 인스턴스를 생성할 때 옵션 을 지정 하여
InnoDB
페이지 크기 를 8KB 또는 4KB로 줄이면innodb_page_size
인덱스 키의 최대 길이는 16KB 페이지 크기에 대해 3072바이트 제한을 기준으로 비례하여 낮아집니다. 즉, 최대 인덱스 키 길이는 페이지 크기가 8KB인 경우 1536바이트이고 페이지 크기가 4KB인 경우 768바이트입니다.인덱스 키 접두사에 적용되는 제한은 전체 열 인덱스 키에도 적용됩니다.
-
다중 열 인덱스에는 최대 16개의 열이 허용됩니다. 제한을 초과하면 오류가 반환됩니다.
ERROR 1070 (42000): Too many key parts specified; max 16 parts allowed
-
페이지 외부에 저장된 가변 길이 열을 제외한 최대 행 크기는 4KB, 8KB, 16KB 및 32KB 페이지 크기의 경우 페이지의 절반보다 약간 작습니다. 예를 들어 기본값
innodb_page_size
인 16KB 의 최대 행 크기 는 약 8000바이트입니다. 그러나InnoDB
페이지 크기가 64KB인 경우 최대 행 크기는 약 16000바이트입니다.LONGBLOB
및LONGTEXT
열을 포함하여 최대 4GB 미만 및 총 행 크기이어야BLOB
하고TEXT
덜 4기가바이트 이상이어야합니다, 열을.행의 길이가 절반 미만이면 모든 행이 페이지 내에 로컬로 저장됩니다. 반 페이지를 초과하는 경우 14.12.2절. “파일 공간 관리” 에서 설명한 대로 행이 반 페이지 내에 들어갈 때까지 가변 길이 열이 외부 오프 페이지 저장용으로 선택됩니다 .
-
InnoDB
내부적으로 65,535바이트보다 큰 행 크기를 지원 하지만 MySQL 자체는 모든 열의 결합 크기에 대해 65,535개의 행 크기 제한을 부과합니다. 8.4.7절. “테이블 열 개수 및 행 크기 제한”을 참조하십시오 . -
일부 이전 운영 체제에서 파일은 2GB 미만이어야 합니다. 이것은
InnoDB
제한 사항 이 아닙니다 . 큰 시스템 테이블스페이스가 필요한 경우 하나의 큰 데이터 파일이 아닌 여러 개의 작은 데이터 파일을 사용하여 구성하거나 테이블별 파일 및 일반 테이블스페이스 데이터 파일에 테이블 데이터를 분산합니다. -
InnoDB
로그 파일 의 결합된 최대 크기 는 512GB입니다. -
최소 테이블스페이스 크기는 10MB보다 약간 큽니다. 최대 테이블스페이스 크기는
InnoDB
페이지 크기 에 따라 다릅니다 .표 14.25 InnoDB 최대 테이블스페이스 크기
InnoDB 페이지 크기 최대 테이블스페이스 크기 4KB 16TB 8KB 32TB 16KB 64TB 32KB 128TB 64KB 256TB 최대 테이블스페이스 크기는 테이블의 최대 크기이기도 합니다.
-
테이블스페이스 파일은 Windows 32비트 시스템에서 4GB를 초과할 수 없습니다(버그 #80149).
-
InnoDB
인스턴스 취소 및 임시 테이블 예약 그 테이블의 소수, 2 ^ 32 (4294967296) 테이블을 지원한다. -
공유 테이블스페이스는 최대 2^32(4294967296) 테이블을 지원합니다.
-
파일 이름을 포함한 테이블스페이스 파일의 경로는
MAX_PATH
Windows 에서 제한을 초과할 수 없습니다 . Windows 10 이전에는MAX_PATH
260자로 제한됩니다. Windows 10 버전 1607MAX_PATH
부터 일반적인 Win32 파일 및 디렉터리 기능에서 제한 사항이 제거되었지만 새 동작을 활성화해야 합니다. -
ROW_FORMAT=COMPRESSED
에 바라쿠다 파일 형식으로 페이지 크기가 가장 16킬로바이트에 있으며 14 비트 포인터를 사용하는 것으로 가정합니다. -
동시 읽기-쓰기 트랜잭션과 관련된 제한 은 14.6.7절 . “로그 실행 취소”를 참조하십시오 .