본문 바로가기
Database/MySQL

Mysql 날짜관련 data type, datetime과 timestamp 차이

by devstep 2022. 6. 2.

datetime과 timestamp의 차이

timestamp

  • mysql은 저장할 때 현재 타임존에서 UTC로 변환하고, 조회할 때 UTC에서 현재 시간대로 변환한다.
    • 타임존 변경 작업시 부하가 발생할 수 있다.
    • 하지만 요즘 트렌드는 timestamp를 사용하는 것이라고 한다. 그정도 부하는 허용 가능한가보다.
  • 기본으로 각 연결의 타임존은 서버의 시간이고, 타임존은 connection별로 설정할 수 있다.
  • Mysql에서 사용할 time zone 셋팅 방법은 여러가지이다.
    • 시스템 변수의 time_zone 값을 사용할 수 있다.
    • mysql서버 시작 시 --timezone 옵션 값을 줄 수 있다.
    • 등 다른 방법도 있다.
  • 1970-01-01 00:00:01부터 2038-01-19 03:14:07까지 지원
  • [확인] Index가 더 빠르게 생성된다고 하는데 해당 부분은 공식문서를 확인해보지 않은 상황

datetime

  • 날짜 및 시간 부분을 모두 포함하는 값에 사용
  • 1000-01-01 00:00:00부터 9999-12-31 23:59:59까지 지원
  • timezone 반영하지 않음

결론

  • 글로벌 서비스라면 timezone이 반영된 timestamp 를 사용하고, 그렇지 않다면 datetime을 사용하는 게 좋지 않을까 합니다.

Mysql 타임존 확인방법

show variables like '%time_zone%'

댓글