Esse foi um post muito bacana sobre otimização. Mas sinceramente, foi uma gambiarra sem igual.
O próprio PostgreSQL possui um sistema de particionamento nativo. Bastava criar uma tabela particionada por data e o banco lidaria em restringir consultas automaticamente para sua partição correta.
Além disso daria para usar índices parciais, ou índices BRIN que teria um efeito semelhante ao que você alcançou.
De qualquer forma, essa foi uma ideia bastante criativa para solucionar seu problema
Opa. Obrigado pela resposta. Eu fiz testes com o sistema de particionamento do Postgres mas não obtive resultados satisfatórios. O problema era que em uma parte era preciso fazer um count nos registros pra fins de paginação e em nenhum dos meus testes eu consegui resultados aceitáveis com o postgres.
Estava pensando exatamente nisso, tenho um cenário parecido, porém eu tenho 20MM de registros ao dia que tenho que manter durante 5 anos, sem particionamento eu teria me arrebentado.