레코드 수가 매우 많기 때문에 인도식 휴대 전화 번호를 MySQL 테이블에 저장한다고 가정합니다. 스토리지를 최적화하고 싶습니다. 인도 휴대 전화 번호는 10 자리이며 일반적으로 7,8 또는 9로 시작합니다. 예 : 9XXXXXXXXX
.mysql에 4 바이트 또는 8 바이트 대신 정수를 저장하기 위해 N 바이트를 할당하는 방법은 무엇입니까?
관련 MySQL의 필드는 :
바와 같이Type Storage Minimum Value Maximum Value
(Bytes) (Signed/Unsigned) (Signed/Unsigned)
INT 4 -2147483648 2147483647
0 4294967295 <-- somewhat small
BIGINT 8 -9223372036854775808 9223372036854775807
0 18446744073709551615 <-- too large
는 부호 INT 조금 작은 (값의 절반 정도)이고, 부호 BIGINT는 10 자리 숫자를 저장하는 매우 크다. 5 바이트 만 있으면이 데이터를 저장할 수 있습니다.
내 질문이 있습니다 : -
A) 바이트의 사용자 지정 숫자를 할당하고 사용 가능한 데이터 유형의 유형 MYSQL에서이 데이터를 저장할 수있는 좋은 방법이 있나요?
b) 조기 최적화입니까? 이 모든 시도에 어떤 장점/단점이 있습니까?
c) 4 바이트 및 8 바이트 숫자와 같은 자연 크기 데이터 유형을 갖고 데이터베이스의 5 바이트 및 6 바이트와 같은 중간 크기를 무시하면 어떤 이점이 있습니까?
참고 : 10 자리 숫자는 전화 번호가 아니라 10 자리 정수라고 가정합니다. VARCHAR은 내가 찾고있는 것이 아닙니다.
감사. 도움이됩니다. – DhruvPathak