Как сделать материализованный вид оптимизированным с помощью postgres

#sql #database #postgresql

#sql #База данных #postgresql

Вопрос:

Проблема с материализованным представлением psql при обновлении запроса выполняется для полной таблицы, я попытался оптимизировать его ниже, хотел бы знать, даст ли это мне значительное улучшение по сравнению с материализованным представлением, а также как его можно улучшить в дальнейшем?

В приведенном ниже примере есть таблица book_total, в которой хранится общая сумма всех цен на книги для категории

 CREATE OR REPLACE FUNCTION count_price()  RETURNS trigger  LANGUAGE plpgsql  SECURITY DEFINER AS $  BEGIN  CASE TG_OP  WHEN 'DELETE' THEN  insert into books_total(id, total)  SELECT number as id,   SUM(price) as total  from books  where number = old.number  GROUP BY number;  ELSE  insert into books_total(id, total)  SELECT number as id,   SUM(price) as total  from books  where number = new.number  GROUP BY number;  END CASE;  RETURN NULL;  END; $;  CREATE CONSTRAINT TRIGGER count_price_trigger AFTER INSERT OR DELETE ON books FOR EACH ROW EXECUTE PROCEDURE count_price();   create table books (  id serial primary key ,  number int not null,  price int not null )  create table books_total (  id int not null ,  price int not null )  insert into books values(  1,  1,  5 )