mysql DB 데이터 타입 varchar 관해 궁굼한점
본문
검색으론 좀 모르겠어서 여쭤봅니다.
varchar 타입은 가변적으로 데이터 양에 맞게 동적으로 할당된다는데요
데이터 값이
a
ab
abc
abcd
라고 할경우
1. varchar(10) 과 varchar(255)의 차이점이 있나요?
2. a 레코드에는 1바이트 ab 레코드는 2바이트 ... 등 저장된 데이터 양에 맞게 <레코드 마다 각각> 용량이 할당 되는건지
3. 아니면 abcd 값이 들어오면 해당 필드 전체가 4바이트 char(4)인것 처럼 바뀌는건지..
4. 만약 1항에서 차이가 없다면 mb_id 필드는 왜 varchar(255)라고 안하고 varchar(20) 이라고 정의 하는지
ai 한테 물어보니 동적 할당이라면서 varchar(255)는 너무 큰 공간을 할당받아서 공간낭비가 발생할수 있다는 모순된 얘기를 하네요
답변 2
데이터길이 차이입니다. 2,3번은 정확히 모르겠지만 4번은 mb_id(회원아이디) 최대 길이가 정해져있어서 20으로 해놨을겁니다.
필요한 길이만큼 할당해야 합니다.. 누적 데이터량에서 차이가 발생해요.
답변을 작성하시기 전에 로그인 해주세요.