Эта структура таблицы звучит так, как будто она была предназначена для схемы разделения данных . Это не плохой дизайн. Это очень хорошая вещь!
Такие данные, основанные на времени, всегда добавляются впереди и сбрасываются сзади по истечении срока действия. Использование одной огромной таблицы приведет к большой фрагментации индекса при обновлении данных и к очень большому времени обслуживания для таких операций, как VACUUM.
Если вы перейдете по ссылке, которую я включил в первый абзац, и прочитаете все о разбиении, вы сможете использовать ограничения CHECK для очень быстрого поиска по дате. Любой SELECT, который включает метку времени WHERE> x И метку времени
Теперь, если в этих таблицах нет временных отметок, разбиение с ограничениями CHECK не будет работать, и вам просто нужно будет написать сценарии для написания неуклюжих запросов UNION для вас.