Update:
Si crees que tendrás una tabla muy grande, trata de buscar un software de base de datos que te permita
particionar la tabla. ¿Qué cresta significa esto? Que físicamente puedes partir la tabla en varios pedazos, pero desde el punto de vista lógico no se nota. Ejemplo:
Imagínate que tienes una tabla enoooorme, con un campo de tipo fecha. Evalúas entonces "partir" la tabla por año, y creas una partición por cada año. Así, tu tabla estará particionada en el año 2010, 2011, 2012, 2013, 2014, 2015 y 2016 lo que significa que estará partida físicamente. Pero la tabla se llamará igual, desde el punto de vista de tu aplicativo esto es transparente.
¿Quñe ventaja tiene esto? Que si haces una consulta referente a una fecha del añó 2012, internamente no tendrás que revisar TOOOODA la bendita tabla, sino que el motor irá automáticamente a la partición correspondiente al año 2012 con lo que ahorrarás mucho acceso a disco. Créeme, esto mejora mucho el rendimiento, pero MUCHO.
Yo se que Oracle, MySql y Postgresql tienen esa opción. En Oracle y MySql la he probado y es la cumbia. No se en Postgresql, pero el vikingo calvo (alias
@unreal4u ) se maneja en Postgres y puede darnos feedback.
Esto es una consideración de diseño. Convérsalo con la gente de tu pega. Lo mejor de todo es que como te decía, esto es transparente para la aplicación.