powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Кэшируются ли представления в postgress?
5 сообщений из 5, страница 1 из 1
Кэшируются ли представления в postgress?
    #32386705
Guderian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть довольно таки страшненькое представление (в качестве примера),
использующее вот такой вот запрос:

((((SELECT users_permission.uid, modules.id AS module FROM modules, users_permission WHERE ((modules.id = users_permission.module) AND (users_permission.permission <> '0000000000000000'::varbit))) UNION (SELECT users_groups_link.uid, modules.id AS module FROM modules, groups_permission, users_groups_link WHERE (((modules.id = groups_permission.module) AND (users_groups_link.gid = groups_permission.gid)) AND (groups_permission.permission <> '0000000000000000'::varbit))))) UNION (SELECT NULL::"unknown", modules.id AS module FROM modules WHERE (modules.permission <> '0000000000000000'::varbit)));

Смысл в принципе в том, чтобы используя записи о юзерских, групповых
разрешениях, а также разрешениях для всех на определенные модули php-приложения, нарисовать в хтмэльном GUI пункты меню - названия модулей с которыми пользователь может работать.

Вопрос мой однако довольно таки общего характера. Попробуйте оценить расходы на выполнение вышеприведенного запроса. Тяжко, не правда ли?
Так вот, интересует меня следующее. Не кэширует ли СУБД результаты запроса и смею ли я надеяться на то, что, если информация в таблицах, к коим обращается представление, не обновлялась, то и само представление не будет создаваться заново при обращении к нему?
...
Рейтинг: 0 / 0
Кэшируются ли представления в postgress?
    #32386743
Sad Spirit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GuderianВопрос мой однако довольно таки общего характера. Попробуйте оценить расходы на выполнение вышеприведенного запроса. Тяжко, не правда ли?

Ответ тоже общего характера: для оценки расходов есть команда EXPLAIN ANALYZE;

GuderianНе кэширует ли СУБД результаты запроса и смею ли я надеяться на то, что, если информация в таблицах, к коим обращается представление, не обновлялась, то и само представление не будет создаваться заново при обращении к нему?

Не кэширует. Физически представление --- это несколько записей в системных таблицах. Подробности --- в документации, в разделе про RULE system.
...
Рейтинг: 0 / 0
Кэшируются ли представления в postgress?
    #32388017
Guderian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарствую. План запроса однако я уже смотрел, и он надо сказать страшно меня напугал, поэтому собственно я и полез на форум.
Значит, не кэшируются... Хорошо, а SQL-код представлений хотя бы хранится в откомпиленном виде, как в мускуле, или каждый раз заново обрабатывается парсером?
...
Рейтинг: 0 / 0
Кэшируются ли представления в postgress?
    #32392091
Sad Spirit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) с каких пор в "мускуле" есть представления?
2) я всё же рекомендую прочитать главу в документации про rules, там всё очень хорошо описано. в общем и целом --- каждый раз обрабатывается парсером.
3) если запросов на чтение намного больше, чем на запись, то можно организовать материализованное представление, посредством триггеров.
...
Рейтинг: 0 / 0
Кэшируются ли представления в postgress?
    #32392787
Guderian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sorry .... естественно в мускуле нет представлений я имел ввиду запросы вообще. А с материализованным представлением ... да, идея хорошая. Вот только не охота чтобы при каждом update/insert триггер заново создавал табличку. Ну да ниче, попробую похитрее как нибудь
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Кэшируются ли представления в postgress?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]