2009-03-31 2 views
2

나는 이것에 대한 답을 알고 있지만, 어떤 아이디어라도 도움이된다고 확신한다. ...는 mysql -indexes의 두 필드를 비교합니까?

우선 MySQL 5.1.32-community이다. 대형 테이블 (수백만 행, 크기를 줄이지 못함 - 축소 된 크기 임)이 있고 관련 필드는 두 datetime 필드입니다. 우리는 date1과 date2라고 부를 것입니다. 나는 모든 행을 반환하는 선택 쿼리를 실행해야합니다 (A 실제로 UUID VARCHAR (40) 여기서 날짜 1> 날짜 2. 그것은 (2 minutes'ish를 실행하는 데 시간이 오래 걸립니다

SELECT id FROM table1 WHERE date1 > date2; 

). 날짜 분명히 자신의 인덱스 아무 것도하지 마라. 두 날짜의 차이를 저장하고 색인을 붙이는 것보다는 짧다. - 질의 시간을 줄이기위한 방법? 이것은 기본적인 질문처럼 보일지 모르지만 나는 아마도 내가 뭔가를 놓치고 있는지 궁금해한다. ...

+0

:

하지만 MySQL이 지원이 부족 솔기? 그게 내 해결책이 될거야. –

+0

두 날짜 만 언급했기 때문에 테이블에는 실제로 약 50 개가 있습니다. 각 테이블은 다른 테이블과 비교해야 할 수도 있습니다. 가능한 모든 날짜의 차이를 저장하는 것은 그냥지나 가지 않습니다. – rfusca

답변

1

카운트를 실행하여 실제로 반환되는 데이터가 너무 많아서 모두 반환하는 데 오래 걸릴지 확인하십시오.

select count(ID) from table1 WHERE date1 > date2; 

쿼리가 간단하고 데이터 양이 문제 일 수 있습니다.

+0

시차가 있습니다. 약 10-20 초 정도면 면도합니다. 서로 비교할 여러 날짜가 있으므로 차이점을 저장하고 색인을 작성해야하는 것은 싫지만 꼭해야 할 일입니다. DB는 한 번 쓰고 하루 종일 읽습니다. 읽기 속도가 중요합니다. – rfusca

관련 문제