저는 5 번에 대답했습니다.하지만 정답은 실제로 20 번입니다. 나는 20 번 계산 방법을 모른다.메모리 내 DB 압축 요소 : 계산 방법?
정확히 어떻게 계산할 수 있습니까?
이 예는 "하소 플래트너 연구소"이 질문은 SO에 적합하지 않은 경우
에서의 올바른 SE 사이트 날 직접하시기 바랍니다.
저는 5 번에 대답했습니다.하지만 정답은 실제로 20 번입니다. 나는 20 번 계산 방법을 모른다.메모리 내 DB 압축 요소 : 계산 방법?
정확히 어떻게 계산할 수 있습니까?
이 예는 "하소 플래트너 연구소"이 질문은 SO에 적합하지 않은 경우
에서의 올바른 SE 사이트 날 직접하시기 바랍니다.
의 단순화 (이들 예에서 HPI 의해 사용되는)
1KB = 1000B
1MB = 1000KB
는 상기 압축 사전의 크기를 계산하는 행의 수에 의해, 각 필드의 크기의 합을 사용 곱할 :
Name: CEILING(Log2(2000)) = 15
Surname: CEILING(Log2(100000)) = 17
Age: CEILING(Log2(128)) = 7
Gender: CEILING(Log2(2)) = 1
:
(49+49+1+1)*50 000 000 = ~5000 MB
이제 각 열의 고유 값의 수로서 최대의 둘레를 표현할 수있는 비트의 최소 수를 계산
(15+17+7+1)*50 000 000/8 = ~250MB "divide by 8 to convert from bit to byte
이제 우리는 필드의 크기에 고유 값의 개수를 승산하여 데이터 저장소에서 각 항목의 크기를 계산할 수있다 : 53,691,363,210
전체 속성 벡터의 크기는 다음과 같이 번호가있다 .
Name: 49 * 20 000 = 980 000
Surname: 49 * 100 000 = 4 900 000
Age: 1 * 128 = 128
Gender: 1 * 2 = 2
---------------------------------
Total: 5 880 130 "~5MB
이제는 열 저장소의 전체 크기가 ~ 255MB이고 압축되지 않은 데이터의 크기는 ~ 5000MB입니다.
5000/255 = 19.6 "~20
대단히 감사합니다. 귀하의 솔루션은 유용했습니다! :) – kilobaik
이것은 프로그래밍 질문하지 않습니다 ... –
당신이 dba.stackexchange.com 생각 해 봤나 : 남아있는 모든 것은 간단한 부문인가? –