테이블의 행 길이가 매우 길어질 수 있습니다. 올바르게 읽으면 BIGINT
값이 1
이고 전체 8 바이트를 차지합니다. http://dev.mysql.com/doc/refman/5.5/en/storage-requirements.htmlBIT는 사용하지 않는 공간을 1 바이트까지 채 웁니?
이것은 비효율적으로 보입니다.
BIT
은 동일한 방식으로 작동합니까 아니면 가변 길이 하이브리드입니까? 나는 1 바이트 미만을 사용하면 다른 BIT
이있을 때를 제외하고는 1 바이트의 디스크 공간을 소비한다는 것을 알고 있습니다. 예를 들어열은 올바르게 읽으면 1 바이트 만 차지합니다. 나는 다른 BIT
열이있는 BIT 41
이있는 경우 2^41-1 반대로 말하면
, 해당 열의 0
있는 행은 물론 차지되는 1 바이트 또는 전체 6 바이트를 소모합니다 전체 41 비트?
두 번째 링크의 핵심 부분은 다음과 같습니다. "이 규칙의 예외는 4 바이트 정렬이 아닌 BIT 유형입니다 .MIT 클러스터 테이블에서 BIT (M) 열에는 M 비트의 저장 공간이 필요합니다. 그러나 테이블 정의에 하나 이상의 BIT 열 (최대 32 비트 열)이 포함 된 경우 NDBCLUSTER는 행 당 4 바이트 (32 비트)를 예약합니다. 테이블 정의에 32 비트가 넘는 열 (최대 64 개의 열)이면 NDBCLUSTER는 행 당 8 바이트 (즉, 64 비트)를 예약합니다. " – Patashu