Я просто помещаю ответ, потому что не могу сказать об этом в разделе комментариев. Вам необходимо понимать базовый принцип c проектирования баз данных и построения моделей данных. Для чего нужна ваша база данных? Это главный вопрос, и, хотите верьте, хотите нет, иногда люди с опытом совершают ту же ошибку. Базы данных, в которых запросы огромны и работают с большими пакетными операциями. В этих системах денормализация всегда дает лучшие результаты.
Как только вы узнаете, для чего предназначена ваша база данных, вы можете начать применять некоторые «Лучшие практики», но даже здесь есть много места для интерпретации, и, что еще хуже, одни и те же принципы могут быть хорошими в одном месте, но очень плохими в другом. Я просто собираюсь предоставить вам пример своего реального опыта
8 лет a go Я начал проект, и мы должны разработать базу данных для финансового приложения. После некоторого анализа мы решили использовать стартовую модель или модель измерения-факта. Мы решили создать индексы (в том числе растровые) для некоторых таблиц, хотя мы перестраивали их во время пакетной обработки, чтобы избежать снижения производительности. пользователи выполняли запросы, которые обращались ко всем данным, в основном к аналитике и агрегированию. Последствия: я отбрасываю все индексы.
Это хорошо? Нет, это не так, но в моем сценарии это было лучше всего, и производительность сильно выросла, как в пакетном режиме, так и в пользовательском опыте.
Резюме, как мой старый друг, который работал Oracle Служба поддержки говорила мне: «Перформанс - это искусство, мой друг, а не наука»