В зависимости от размера дополнительных данных и количества памяти, но часто да, это хорошая практика.
У меня был пример, когда рядом с огромной таблицей, я самостоятельно специальным демоном поддерживал таблицу, где в ячейках дублировал агитирующую информацию (суммы, min/max и т.п. при чем по всем моим статистическим запросам, там десятки параметров), за некоторый период (подбирать экспериментально или эмпирически по логике запросов), например по месяцам, за исключением последнего периода. Когда данных много, даже при использовании индексов, посчитать сумму за весь период по условию по всем данным - очень длительная операция. У меня было ручное разбиение исходного массива на текущий месяц и архив (это можно было делать средствами БД но мне удобнее было самому вести две отдельные таблицы) и при переносе устаревших данных в архив, велось заполнение этой агрегирующей таблицы.
В итоге запросы на аналитику за весь период проходили не по архивной таблице, а по этой аналитической + небольшой таблице за последний месяц. Запросы становятся сложнее но работают быстрее.
Практика хранения часто вычисляемых данных в базе тут же рядом - очень частая.