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 타입 변경을 고려해야 됩니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
그래서 내가 주소 칼럼을 만들고 최대 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