1 млрд записей из записей ключ=значение которая пополняется примерно на 100-1000 в секунду и по ней сделано представление выполняющее суммирование значения и группируя по дате. Это представление нужно использовать сразу после операции вставки. Собственно вопрос, не возникнет ли у юзера огромная задержка на чтение этого представления ?
Представление это обертка над select, так что оно будет тормозить так же, как и сама выборка. С материализованным представлением другая ситуация
Я не совсем про то. Вот в таблице у юзера 1млрд записей и он вставил еще одну. Получается представлению надо повторно исполнить этот запрос на суммирвоание 1млрд+1 строку ? И это время юзер ждет
У вас уже через месяц там будет 2 миллиарда, база умрет с таким подходом очень быстро
План выполнения запроса вышел из чата
Ещё раз: представление — это обёртка над SELECT. Фактически, что-то вроде подстановки этого текста в запрос. Постарайтесь это понять.
получается, да. Обращение к представлению под капотом это тот же запрос, это синтаксический сахар в данном случае. Если вы ждете выполнения выборки 1млрд+1 строки, то точно так же будете ждать выборку из представления. Вам надо смотреть в сторону агрегатов, чтобы не пересчитывать миллиард записей каждый раз
Можно чуть подробней что за агрегаты имеется ввиду ? Сводная таблица не через представления ?
да. Зачем считать миллиард записей повторно, когда можно взять готовый результат и сделать +1
Проблема в том что выборка нужна по дате. А если захотят еще и время - идея совсем умрёт :(
Вы группируете по дате значения ?
Вот и храните агрегированные значения по дням , так как подробнее вам и так не нужно
Ну я и говорю, а если захотят время ? Группировать до секунд ? Печально же
Ну, тут или изучайте тему сами (долго, сложно) или наймите толкового архитектора.
Обсуждают сегодня