TEXT, LONGTEXT 질문입니다.
본문
이전 질문에서 varchar(255)는 한글120자 정도 들어간다는 것을 알았습니다.
TEXT, LONGTEXT, MEDIUMTEXT 가 몇자가 들어가는지는 아래 설명에 나오지 않았습니다.
LONGTEXT의 경우 4GB이면 제가 LONGTEXT 적용해놓은 필드 하나를 게시판에 적용해두면
누가 악의적으로 4GB 만큼 글자를 올리면 그 만큼 올라가는건가요?
그리고 longtext,medium text는 몇자 올라갈 수 있는지 궁금합니다.
TEXT
- 자료형의 크기 : 최대 65535 Byte (= 대략 64 KB)
- 범위 : 최대 65535 byte. utf8 기준(3바이트 문자)으로 21844 글자 저장가능.
- 허용크기 계산법 : 65536 = 2^16 = 2Byte 이다. 모든 text 값에는 반드시 이 크기지정 바이트가 붙는다. 따라서 한글의 경우 (65535-2)/3 글자 만큼 저장할 수 있다.
MEDIUMTEXT
- 범위 : 최대 16777215 byte (= 대략 16MB)
LONGTEXT
- 범위 : 최대 4294967295 byte (= 대략 4GB)
답변 1
TEXT : 65535 Byte
한글 한글자가 3Byte 인 경우 최대 21844글자가 들어갑니다. (영문, 숫자, 공백은 대체로 1Byte입니다.)
LONGTEXT : 4294967295 byte
한글 한글자가 3Byte 인 경우 최대 1431655765글자가 들어갑니다.
최대로 들어갈 수 있는 범위를 의미합니다.
즉 공간의 크기를 의미하지 들어가있는 데이터의 양이 커지지는 않습니다.
게시판의 내용 wr_content 의 타입이 TEXT 인 경우,
최대 65535 Byte 까지 들어갈 수 있다는 의미이고,
글마다 실제 들어가는 글자수는 다릅니다.
데이터의 타입을 결정하는 것은 최대를 기준으로 해야 됩니다.
어떤 하나의 글도 65535 Byte 를 넘어갈 것 같다면 LONGTEXT 나 MEDIUMTEXT 타입 변경을 고려해야 됩니다.