Řádky v tabulce nebudou samy o sobě problémem.
Takže zhruba 1 milion řádků denně po dobu 90 dnů je 90 milionů řádků. Nevidím důvod, proč by se s tím Postgres nemohl vypořádat, aniž by znal všechny podrobnosti o tom, co děláte.
V závislosti na vaší distribuci dat můžete použít směs indexů, filtrovaných indexů a nějakého druhu rozdělení tabulek, abyste to urychlili, jakmile zjistíte, jaké problémy s výkonem můžete nebo nemusíte mít. Váš problém bude stejný na jakémkoli jiném RDMS, o kterém vím. Pokud potřebujete pouze 3 měsíce v hodnotě návrhu dat v procesu k odstranění dat, nepotřebujete už žádná. Tímto způsobem budete mít na stole konzistentní objem dat. Máte štěstí, že víte, kolik dat bude existovat, otestujte je pro svůj objem a uvidíte, co získáte. Testování jedné tabulky s 90 miliony řádků může být stejně snadné jako:
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