블로그 이미지
플로거
Android/J2EE/Web/Spring/Database

calendar

          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

Notice

Statistics Graph

'Programming/Mysql'에 해당되는 글 1

  1. 2013.05.03 MySql 에서의 현재시각 sysdate vs now
2013.05.03 11:33 Programming/Mysql


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



저작자 표시 비영리 변경 금지
신고

'Programming > Mysql' 카테고리의 다른 글

MySql 에서의 현재시각 sysdate vs now  (0) 2013.05.03
posted by 훈즈 플로거
prev 1 next