예를 들어서
Col1 int // (이건 4byte)
Col2 char(100) // (이건 100bye)
Col3 char(3896) // (이건 3896bye)
이래서 총 4000바이트이면
페이지 크기가 8KB 이니까 한페이지에 2개의 데이터행씩 들어갈텐데
이걸
ColA varchar(1000) // (가변크기 최대 1000byte)
ColB varchar(2000) // (가변크기 최대 2000byte)
ColC varchar(3000) // (가변크기 최대 3000byte)
이걸 ColA, B, C 세 컬럼 모두 데이터 꽉채워 입력했다고 치면
6000byte차서 페이지 크기 8KB에 데이터행 넣고 나면 나머지 2KB는 낭비되잖아....
이걸 이렇게 하면 어떻게 되냐?
ColA, B, C 세 컬럼에 모두 딱 333글자씩만 넣어서 333byte씩만 차지했다면 하나의 데이터행에 999byte씩 들어가잖아
계산하기 편하게 그냥 1000 바이트라고 치고
그러면 쓴만큼만 계산해서 한 페이지에 최대 8개의 데이터행 넣을 수 있는 거냐?
사소한 문제는 패스하고 개념적으로 저게 맞냐?
varchar 같은 가변크기 타입쓰면 쓴만큼만 계산해서 페이지 크기 8KB 알뜰하게 사용 가능?
그래서 varchar쓰면 동적으로 저런 작업하는 연산비용 들어가겠지만 스토리지 알뜰하게 사용할 수 있는 장점이 있다 이건가?
디비에 파일저장하지말고 굳이하겠다면 text쓰거라
뭔 개헛소리를 지껄이냐? ㅄ새낀가?
하등 쓸모도없는거 꽃혀서 고민하고있자너
그냥 모르면 조용히 지나가야지 저 크기의 데이터에서 파일 운운하는 너가 더 ㅄ같아 보임
왠 파일...?
https://www.sqlshack.com/sql-varchar-data-type-deep-dive/