본문 바로가기
backend/mysql

[Hoon] MySql 에서의 현재시각 sysdate vs now

by 훈즈 플로거 2013. 5. 3.

MySql 에서의 현재시각 sysdate vs now

 

 

MySql 에서 현재시각을 위한 함수 sysdate() 와 now()

 

두 함수 모두 현재시각을 반환하지만, 몇가지 차이가 있음.

 

하나의 SQL 문에서 여러번 now()가 사용된 경우, now() 는 동일한 결과를 반환, 

sysdate()는 동일 SQL 문 내에서도 호출되는 시점에 따라 결과값이 달라짐.

 

example> select now(), sysdate(), sleep(5), now(), sysdate();

 

result>

 now()

 sysdate()

 sleep(5)

 now()

 sysdate()

 2013-05-03 오전 11:18:31

 2013-05-03 오전 11:18:31

5

 2013-05-03 오전 11:18:31

 2013-05-03 오전 11:18:36

 

sleep(5)를 통해 중간에 5초동안 대기 시킴.

 

위 결과에서 보듯이, 첫번째 now() 두번째 now() 는 동일한 시간을 보여주지만,

첫번째 sysdate()와 두번째 sysdate()는 sleep(5) 시간만큼의 차이를 보여줌.

 

[sysdate() 사용시 발생할 수 있는 문제점]

1. 다중 Database  Master/Slave  형태의  Database 구성시 Master 와 Slave간의 시간이 다르게 되는 상황이 발생할 수 있음.

2. sysdate() 컬럼 비교시  index가 효율적으로 사용되지 못하고 Full Table Scan 이 실행된다.

 

[solution]

sysdate() 대신 now()를 사용하거나, mysql 설정에서  -sysdate-is-now 옵션을 설정하여 sysdate()와 now() 함수를 동일하게 적용할 수 있다.

 

참조 http://blog.hibrainapps.net/122

 

bit.ly/3fXOzon

 

인프런 인강 55%할인 쿠폰 - 커피한잔으로 Vue.js 핵심 강의!

인프런 인터넷 강의 55% 할인 쿠폰 - 커피한잔(5000원)으로 배우는 Vue.js 핵심 강의! 모바일 환경에서도 강의를 수강할 수 있도록 강의가 많이 개선되었습니다. 인프런 인터넷 강의 선착순 100명 55% �

plogger.tistory.com

bit.ly/2TtRHis

 

[Vue.js 입문] 초보 실전 웹앱 개발 - 1부 : vue 개념 ~ 핵심 문법 - 인프런

이 강의를 수강하시면 Vue.js 와 관련된 기본적인 개념부터 Real 웹앱 개발을 해 볼 수 있습니다. 이 강의는 1부 기본기 이며, 2부와 3부를 통해서 실제 Real 웹앱을 구현해 보도록 하겠습니다. 초급 ��

www.inflearn.com

 

댓글0