Wiersze na tabelę nie będą same w sobie problemem.
Tak więc z grubsza 1 milion wierszy dziennie przez 90 dni to 90 milionów wierszy. Nie widzę powodu, dla którego Postgres nie mógłby sobie z tym poradzić, nie znając wszystkich szczegółów tego, co robisz.
W zależności od dystrybucji danych możesz użyć kombinacji indeksów, filtrowanych indeksów i pewnego rodzaju partycjonowania tabel, aby przyspieszyć działanie, gdy zobaczysz, jakie problemy z wydajnością możesz mieć lub nie. Twój problem będzie taki sam na każdym innym RDMS, o którym wiem. Jeśli potrzebujesz tylko 3 miesięcy projektowania danych w procesie przycinania danych, nie potrzebujesz już więcej. W ten sposób będziesz mieć spójną ilość danych na stole. Masz szczęście, że wiesz, ile danych będzie istniało, przetestuj je pod kątem swojej objętości i zobacz, co otrzymasz. Testowanie jednej tabeli zawierającej 90 milionów wierszy może być tak proste, jak:
select x,1 as c2,2 as c3
from generate_series(1,90000000) x;
https://wiki.postgresql.org/wiki/FAQ
Limit Value
Maximum Database Size Unlimited
Maximum Table Size 32 TB
Maximum Row Size 1.6 TB
Maximum Field Size 1 GB
Maximum Rows per Table Unlimited
Maximum Columns per Table 250 - 1600 depending on column types
Maximum Indexes per Table Unlimited