Я пытаюсь расположить таблицы для использования на новом общедоступном веб-сайте. Видя, что чтения будет намного больше, чем записи данных (при предположении> 85% чтения), я хотел бы оптимизировать базу данных для чтения.
Всякий раз, когда мы перечисляем участников, мы планируем показывать сводную информацию об участниках. Что-то похожее на очки репутации и значки, которые использует stackoverflow. Вместо того, чтобы выполнять подзапрос для поиска информации каждый раз, когда мы выполняем поиск, я хотел иметь «вычисляемое» поле в таблице элементов.
Всякий раз, когда инициируется действие, которое затронет это поле, скажем, член получает больше очков, мы просто обновляем это поле, выполняя запрос для вычисления новых значений.
Очевидно, что будет необходимо поддерживать это поле в актуальном состоянии, но даже если поле не синхронизировано, мы всегда можем повторно выполнить запрос для обновления этого поля.
Мой вопрос: это подходящий подход к оптимизации базы данных? Или подзапросы достаточно быстрые, чтобы производительность не пострадала.