본문 바로가기
database

[DB 5편] MySQL 데이터 유형 관련 정리

by 무대포 개발자 2022. 10. 10.
728x90
반응형

목차는 DB 목차 에 있습니다.

[DB 5편] MySQL 데이터 유형 관련 정리

Null 을 사용하지 않는 것이 좋습니다.

  • Application 개발을 할 때와 마찬가지로 null 을 사용하지 않는 것이 좋습니다.
  • MySQL 내부에서 인덱스, 비교 등의 계산을 할 때, null 이 들어가면 resource 소모가 있거나 측정하기 어려우며, 이는 성능 최적화가 어렵습니다.
  • 그러므로 개발을 할 때는, null 을 사용하지 않는 것이 좋으며, 기존 테이블에 null 이 있는 것을 강제로 not null 로 바꿀려고 하는 것은 운영 중인 서비스에 영향을 줄 수 있으므로 심사숙고해야합니다. 또한, null --> not null 로 바꾼다고 성능이 그렇게 향상되는 것은 아닙니다.

문자열 유형

  • INNO DB 를 기준으로 VARCHAR 와 CHAR 에 대해 간략히 정리했습니다.
  • VARCHAR 는 가변길이 문자를 처리하는 데이터 유형, CHAR 는 고정길이 처리 데이터 유형입니다.
  • VARCHAR 는 데이터 길이에 대한 비트 1~2 를 포함합니다. CHAR 는 없습니다.
  • VARCHAR 는 가변길이이고, 이는 저장공간을 최적화할 수 있으니 성능에 좋습니다.
  • CHAR 는 고정 길이이므로 자주 변경되는 데이터에 사용하면 VARCHAR 보다 좋습니다.

숫자 데이터 유형

  • 데이터 요건에 맞는 사이즈를 선택하는 것이 좋습니다.
    • 예를 들면, 정수의 경우 SMALLINT, INT, BIGINT 등이 있는데 각각 16, 32, 64 비트의 저장 공간을 사용합니다.
    • 적절한 사이즈를 선택하는 것이 좋습니다.
  • unsigned 가 사용 가능한 데이터 컬럼이라면 사용하는 것이 좋습니다.
    • 부호가 안붙는다는건 그 만큼 덜 저장하는 것이기에 좋습니다.

문자보다는 정수, 날짜, 시간이 좋습니다.

  • 데이터 유형을 정할 때는 문자 < 정수, 날짜, 시간이 좋습니다.
  • 문자를 가지고 sort 를 하거나 equal 비교 등을 진행한다면 문자열이 정수, 날짜, 시간 보다 더 많은 cpu 를 사용합니다.

댓글