Powiedzmy, że mam w bazie danych kilka milionów rekordów, ale interesują mnie tylko te z np. miesiąca, reszta danych (powiedzmy 70%) mnie nie interesuje i są w bazie tylko po to, żeby było archiwum.
Czy da się w jakiś sposób to wydzielić, że podczas przeszukiwania zapytaniem SELECT wyszukuje tylko z tej części tabeli która faktycznie zawiera te dane?
Teraz mam to w ten sposób, że jest warunek WHERE date coś na wzór:
Kod
SELECT * from tabela where true AND date > '2016-07-31;
No ale zapytanie trwa bardzo długo bo mieli całą bazę, co muszę po kolei wykonać, żeby zapytanie brało pod uwagę od razu tylko te najnowsze rekordy? Czyli jakby na jednej partycji były najnowsze dane a na tej drugiej stare. Jak to ugryźć?

Jeśli nie partycjonowanie to czy jest inny sposób?
Jedyne co mi przychodzi to stworzenie dwóch tabel gdzie w jednej są dane aktualne a w drugiej wszystkie ale to bez sensu i tu w tym moim przypadku musi to być jednak w jednej tabeli.