2012-03-07 3 views
0

에 동일한 타임 스탬프 분 필드 데이터를 얻기 위해 나는 다음과 같은 쿼리가 :이 현재 작동하지만 데이터베이스에 많은 양의 데이터가있을 때 정말 느리다MySQL의 쿼리는 현재 날짜

SELECT MIN(myColumn) as myColumn 
FROM myTable 
WHERE date(time_stamp) = curdate() AND id = 1; 

합니다. 나는이를 사용하여 시도 :

SELECT MIN(myColumn) as myColumn 
FROM myTable 
WHERE time_stamp >= (now() - interval 1 day) AND id = 1; 

이 쿼리는 꽤 빨리하지만 문제는 내가 대신 자정의처럼 현재 날짜의 지난 24 시간 동안 데이터를 얻고있다. date() 변환으로 인해 속도가 느려지고 있다고 가정합니다. 속도를 높이기 위해 첫 번째 쿼리를 수행하는 더 좋은 방법이 있습니까?

답변

1

간단한 방법은

SELECT MIN(myColumn) as myColumn 
FROM myTable 
WHERE time_stamp between date(now()) and date(now() + interval 1 day) AND id = 1; 

또는 이와 유사한 될 수 있습니다.

+0

대단히 감사합니다! – MBU

1

옵션을 테스트하기 위해 MySql이 설치되어 있지 않지만 time_stamp> = curDate()를 시도하거나 curDate()를 수정하여 time_stamp처럼 형식화하십시오.

+0

감사합니다. 이것도 작동합니다. – MBU