Enum은 다른 dbms로 데이터 마이그레이션이 불가하다고 한다.enum은 데이터베이스 표준이 아니고mysql 확장기준이기 때문이다. 때문에 다른 데이터베이스로 데이터 마이그레이션이 필요한 경우 문제가 생길 수 있다고한다. Enum탈락! (그 외에 이유도 있음)
=ENUM type은 확장성이 좋지 않아서 비효율적이라 사용을 권하지 않는다
tinyint와 enum의 경우 1byte를 사용한다.
varchar의 경우 가변의 문자열 타입으로 저장되는 문자 charset에 따라 저장되는 크기가 다르며, 데이터를 삽입할 때 데이터 값 외에 삽입된 문자열의 길이를 함께 저장한다는 특징이 있다.
즉, 단순 데이터 크기를 비교했을 때는 varchar가 tinyint와 enum에 비해 훨씬 많은 공간을 차지하게 된다.
'tinyint < enum << varchar' 순서로 성능적인 측면에서는 tinyint를 사용하는것이 옳다.
CHAR은 유동적이지 않은 길이를 가진 데이터에 효율적이고 VARCHAR은 유동적인 길이를 가진 데이터를 저장할 때 사용한다.
Int(1) = tinyint(4)
마리아디비에서 boolean값으로 테이블 정의후 데이터를 insert하면 워크벤치에서 tinyint(1) 값으로 들어옴