TEXT, LONGTEXT 질문입니다.

TEXT, LONGTEXT 질문입니다.

QA

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 타입 변경을 고려해야 됩니다.

varchar 타입은 Byte 단위로 길이를 지정해줄 수 있습니다.

그래서 내가 주소 칼럼을 만들고 최대 200 Byte 정도로 하겠다 그러면,
해당 컬럼은 varchar(200) 으로 만들어주면 됩니다.

varchar(1) 은, 최대 1Byte 까지만 저장할 수 있다는 얘기이고,
varchar(1000) 은, 최대 1000Byte 까지만 저장할 수 있다는 얘기입니다.

mysql 버전에 따라 다르지만,
최근에는 varchar 타입의 최대길이를 65535 Byte 까지 설정할 수 있다는 얘기입니다.
즉, varchar(65535) 로 어떤 칼럼을 만들 수 있고, 65535 Byte 까지 저장합니다.

하지만 varchar 타입의 길이가 255 이상으로 하려는 경우에는, 가능은 하지만,
권장하지 않는다는 뜻입니다.
즉 varchar(500), varchar(1000), varchar(5000) 을 하는 게 가능은 하지만,
text 로 하는게 바람직하다 뜻입니다.

왜 바람직한지, 못한지와 관련해서는.. 깊이있게 살펴봐야 되는 부분입니다.
http://junhyung2.blogspot.com/2015/02/mysql_67.html

답변을 작성하시기 전에 로그인 해주세요.
전체 4

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT