18.1.6.2 MySQL Cluster의 한계와 표준 MySQL의 제한과의 차이
이 섹션에서는 MySQL Cluster에 포함 된 제한 중 표준 MySQL에 포함 된 제한과는 다른 (또는 포함되지 않는) 것을 나타냅니다.
메모리 사용량과 복구 다른 스토리지 엔진뿐만 아니라 NDB
테이블에 데이터를 삽입 할 때 소비 된 메모리는 제거 할 때 자동으로 복구되지 않습니다. 대신 다음과 같은 규칙이 적용됩니다.
NDB
테이블에DELETE
문을 실행하면 삭제 된 행에서 이전에 사용 된 메모리가 같은 테이블에 삽입에만 다시 사용할 수 있습니다. 그러나OPTIMIZE TABLE
을 실행하면이 메모리의 일반적인 재사용이 가능합니다.클러스터의 롤링 다시 시작하지 않은 경우에도 삭제 된 행에 사용 된 메모리가 해제됩니다. 섹션 18.5.5 "MySQL Cluster의 롤링 다시 부팅 수행" 을 참조하십시오.
NDB
테이블에서DROP TABLE
또는TRUNCATE TABLE
작업을 수행하면이 테이블에서 사용 된 메모리가 해제되고 모든NDB
테이블에서 (같은 테이블에서 다른NDB
테이블도) 다시 사용할 수 있습니다.참고TRUNCATE TABLE
의해 테이블이 삭제되고 다시 생성되는 것을 기억하십시오. 섹션 13.1.33 "TRUNCATE TABLE 구문" 을 참조하십시오.클러스터 구성에 의해 부과 된 제한 많은 구성 가능한 하드 제한이 있지만, 클러스터의 사용 가능한 메인 메모리에 의해 제한이 설정됩니다. 섹션 18.3.2 "MySQL Cluster 구성 파일" 구성 매개 변수의 전체 목록을 참조하십시오. 대부분의 구성 매개 변수는 온라인으로 업그레이드 할 수 있습니다. 이 하드 제한에는 다음과 같은 것이 있습니다.
데이터베이스 메모리 크기 및 인덱스 메모리 크기 (각각
DataMemory
및IndexMemory
).DataMemory
는 32K 바이트의 페이지로 할당됩니다. 각DataMemory
페이지가 사용 된 경우 특정 테이블에 할당됩니다. 할당 된 후에는 테이블을 삭제 한 경우를 제외하고이 메모리를 해제 할 수 없습니다.자세한 내용은 섹션 18.3.2.6 "MySQL Cluster 데이터 노드의 정의" 를 참조하십시오.
하나의 트랜잭션에서 수행 할 수있는 최대 수 구성 매개 변수
MaxNoOfConcurrentOperations
및MaxNoOfLocalOperations
를 사용하여 설정됩니다.참고대량로드,
TRUNCATE TABLE
및ALTER TABLE
은 여러 트랜잭션을 실행하여 특별한 케이스로 취급되기 때문에 이러한 제한이 적용되지 않습니다.테이블 및 인덱스에 대한 다양한 제한. 예를 들어, 클러스터의 순서화 된 인덱스의 최대
MaxNoOfOrderedIndexes
에 의해 결정되며, 테이블 당 순서화 된 인덱스의 최대 수는 16입니다.
노드와 데이터 객체의 최대 클러스터 노드와 메타 데이터 개체의 수에는 다음과 같은 제한이 적용됩니다.
데이터 노드의 최대 수는 48입니다.
데이터 노드는 1에서 48까지 (이들을 포함) 범위의 노드 ID를 가질 필요가 있습니다. (관리 노드 및 API 노드에는 1에서 255까지의 (이들을 포함) 범위의 노드 ID가 사용되는 경우가 있습니다.)
MySQL Cluster의 노드의 총 수는 최대 255입니다. 이 숫자에는 모든 SQL 노드 (MySQL Server), API 노드 (MySQL Server 이외의 클러스터에 액세스하는 응용 프로그램) 데이터 노드 및 관리 서버가 포함됩니다.
메타 데이터 오브젝트의 최대 수는 MySQL Cluster의 현재 버전은 20320입니다. 이 제한은 하드 코딩되어 있습니다.
자세한 내용은 섹션 18.1.6.11 "MySQL Cluster NDB 7.3에서 해결 된 이전의 MySQL Cluster 문제" 를 참조하십시오.