Как использование RLS влияет на стоимость плана выполнения SQL запроса для СУБД PostgreSQL при использовании в условии FROM соединений JOIN ? При использовании Row-Level Security (RLS) в запросах PostgreSQL с операторами JOIN влияние на стоимость плана выполнения становится более сложным и может проявляться в нескольких аспектах: RLS-политики применяются индивидуально к каждой таблице в запросе: SELECT * FROM orders JOIN customers ON orders.customer_id = customers.id; Если для обеих таблиц включены политики RLS, запрос неявно преобразуется в: SELECT * FROM orders JOIN customers ON orders.customer_id = customers.id WHERE orders.tenant_id = current_tenant() -- RLS для orders AND customers.active = true; -- RLS для customers Последствия: Оптимизатор может изменить последовательность JOIN из-за RLS: RLS может изменить выбор между Nested Loop, Hash Join и Merge Join: Пример: После применения RLS к orders осталось 5 строк → оптимизатор выбирает Nested Loop вместо Hash Join. Глав