Skip to main content Link Menu Expand (external link) Document Search Copy Copied

created at 2024-09-04

Table of contents

  1. MYSQL
    1. reference

MYSQL

  • VARCHAR vs CHAR 타입 차이
    • VARCHAR : 가변길이로 되어있고 공백으로 채워지지 않음.
    • CHAR : 고정길이로 되어있고 공백으로 채워짐. 인덱싱해서 검색할 때 빠름.
  • VARCHAR vs TEXT 타입 차이
    • VARCHAR : row 에 직접 저장. 전체 인덱싱 가능.
    • TEXT : row 에 저장하는게 아닌 따로 저장해놓고 포인터를 행에 저장. 그래서 max row size 보다 큰 텍스트를 저장할 때 사용. 당연히 엄청난 크기의 텍스트를 인덱싱하는건 불가능하고 앞에 m 바이트만 인덱싱함.
CREATE INDEX
    message_idx
ON
    comm_database(message);

위의 sql 은 에러남.

ERROR 1170 (42000): BLOB/TEXT column 'message' used in key specification without a key length
CREATE INDEX
    message_idx
ON
    comm_database(message(30));

위의 sql 은 정상적으로 작동함. 앞의 30 바이트만 인덱싱한다. prefix indexes 로 부름.

그런데 이 긴 TEXT 를 서칭할 일이 있을까?

reference

  • https://stackoverflow.com/questions/25300821/difference-between-varchar-and-text-in-mysql