SYSDATE() 와 NOW()

-- MySQL 2017. 4. 11. 13:48
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

MYSQL에 날짜를 구하는 함수가 SYSDATE() 와 NOW()이 있는데, 차이점을 검색하던 중 잘 정리된 사이트가 있어 내용을 참조하여 본인이 보기 편하도록 편집하여 정리한다.

(성능을 위한 중요한 기본기라고 생각한다.)



SYSDATE() 함수는 트랜잭션이나 쿼리 단위에 전혀 관계 없이 그 함수가 실행되는 시점의 시각을 리턴해주지만, NOW()는 하나의 쿼리 단위로 동일한 값을 리턴하게 된다.

SELECT NOW(), SLEEP(2), NOW();
2017-04-11 오후 1:29:
11 0 2017-04-11 오후 1:29:11

SELECT SYSDATE(), SLEEP(2), SYSDATE();
2017-04-11 오후 1:29:13 0 2017-04-11 오후 1:29:15

즉, 쿼리의 비교 값으로 사용된 NOW() 함수는 상수(Constant)이지만, SYSDATE() 함수는 상수가 아닌 것이다.
이로 인해서, 전체적인 쿼리의 실행 계획이 바껴버리게 되므로 알맞는 용도에만 SYSDATE()를 사용하고, 일반적인 쿼리문에는 반드시 NOW()를 사용해야 한다.

출처 : http://intomysql.blogspot.kr/2010/12/sysdate-now.html


'-- MySQL' 카테고리의 다른 글

위/경도 좌표 간 거리 구하기  (0) 2018.03.12
MYSQL 모든 테이블의 명세를 만드는 쿼리  (0) 2017.05.16
MySQL FIND_IN_SET  (0) 2015.03.02
MySQL 프로시저 파라미터 구문 생성  (0) 2015.03.02
ASCII to CHAR, CHAR to ASCII  (0) 2015.02.09
posted by 어린왕자악꿍