которой мне регулярно придется выполнять order by по одной из колонок, буквально каждый день по многу раз. Какой из вариантов более предпочтительный и почему:
1) Сделать B-Tree индекс по этому полю
2) Сделать Materialized View по этому полю и вызывать ему refresh, условно, раз в сутки?
Насколько я понимаю, в первом случае будет выше средняя нагрузка на базу (и медленнее инсерты), а во втором будет пик в момент пересбора MV. Правильно рассуждаю?
Вполне возможно, что ни один из них (явная сортировка может быть быстрее, чем полное чтение индекса и таблицы или mat.view, например). Показали бы Вы \d+ таблицы и запросы (примерные, хотя бы).
Выполните замеры скорости, и определите какой(ие) варианты вас устраивают. Из допустимых -- выберите тот, в котором меньшэ слоёв абстракцыи и кода.
Обсуждают сегодня