Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL TEXT 데이터 타입이란? 특징과 4가지 종류 완벽 정리

MySQL에서 TEXT 데이터 타입은 데이터베이스에 긴 형태의 텍스트 문자열을 저장할 때 유용하게 사용되는 데이터 객체입니다. 게시글 본문, 상품 설명, 댓글처럼 VARCHAR로는 담기 어려운 대용량 문자 데이터를 다룰 때 적합합니다.

TEXT 데이터 타입의 주요 특징

  • TEXT는 대용량 문자 저장을 목적으로 설계된 컬럼 타입 계열입니다.
  • 실제 TEXT 타입은 네 가지로 나뉩니다 — TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT.
  • 네 가지 타입은 서로 매우 유사하며, 유일한 차이점은 각각 저장할 수 있는 최대 데이터 크기입니다.
  • 가장 작은 타입인 TINYTEXT는 VARCHAR와 동일한 문자 길이(255자)를 가집니다.
  • TEXT 값은 문자열(character string)로 취급됩니다.
  • TEXT는 바이너리가 아닌 별도의 문자셋(character set)과 콜레이션(collation)을 가질 수 있습니다.
  • 비교와 정렬은 해당 컬럼의 문자셋 콜레이션 규칙을 기준으로 수행됩니다.
  • TEXT 컬럼에 삽입되는 값의 뒤쪽 공백(trailing space)이 잘리는 경우, SQL 모드와 관계없이 항상 경고(warning)가 발생합니다.
  • TEXT 계열 컬럼은 사용 방식이 VARCHAR와 거의 비슷하지만, 몇 가지 제약이 있습니다.
  • TEXT 컬럼에는 DEFAULT 값을 지정할 수 없습니다.

TEXT 타입별 최대 저장 용량

타입최대 크기저장 가능한 내용 예시
TINYTEXT255바이트짧은 문장, 요약문
TEXT65,535바이트 (약 64KB)블로그 글, 짧은 기사
MEDIUMTEXT16,777,215바이트 (약 16MB)책 한 권 분량의 텍스트
LONGTEXT4,294,967,295바이트 (약 4GB)대용량 로그, 장편 문서

TEXT 컬럼 선언 예제

다음 예제는 테이블 생성 시 하나의 컬럼을 TEXT 타입으로 선언하는 방법을 보여줍니다.

mysql> Create table magzine(id INT, title Varchar(25), Introduction TEXT);
Query OK, 0 rows affected (0.16 sec)

mysql> Describe magzine;
+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| id           | int(11)     | YES  |     | NULL    |       |
| title        | varchar(25) | YES  |     | NULL    |       |
| Introduction | text        | YES  |     | NULL    |       |
+--------------+-------------+------+-----+---------+-------+
3 rows in set (0.11 sec)

위 결과를 보면 Introduction 컬럼이 text 타입으로 정상적으로 생성된 것을 확인할 수 있습니다. 이처럼 저장해야 할 텍스트의 예상 길이에 맞춰 적절한 TEXT 타입을 선택하면, 스토리지를 효율적으로 활용하면서 안정적으로 대용량 문자 데이터를 관리할 수 있습니다.