1천만개든 1억개든 많은 양의 데이터가 한 테이블에 있다고 치자.


Date(datetime)의 컬럼에는 인덱스가 있고

Something(anytype)의 컬럼에는 인덱스가 없다.


where Something = xxxx order by Something ASC 

이건 Something에는 인덱스가 없으니 전체 테이블을 검색할 거야.


그런데...

where Date = 오늘 AND Something = xxx order by Date DESC

이건 WHERE절에서 Date를 먼저 검색범주에 넣었으니 Date 인덱스가 활용되고, 오늘날짜의 데이터 내에서만 Something 전체 검색을 하겠지?

즉 앞의 Date와 order절의 Date 인덱스가 적절히 활용됨?


된다면 모든 컬럼에 인덱스를 걸면 아무래도 디스크 용량의 압박이 심하니 Date와 같은 범위 컬럼에만 인덱스를 주고, 모든 쿼리는 날짜 기간을 한정해서 검색할 범위를 줄이도록 한 후에

나머지 데이터들은 인덱스를 안 걸려고 하거든.


가능한 계획?