то люди прочитают, и подумают, что нигде ничего не преперится, не кешируется и не нужно), а то ощущение, что тёплое с мягким тут пытались сравнивать)
1. Есть PREPARE. Если сделать prepare, то можно сэкономить на парсинге(ничтожно) и на пересылке текста (типы некоторые можно пересылать в бинарном виде).
2. План PREPAREd запроса МОЖЕТ закешироваться после нескольких исполнений (5 по дефолту, ручка для контроля в пг12 вроде появилась), при условии, что generic plan не хуже специфичного.
3. В некоторых драйверах это работает из коробки (то, что создаются PREPARE), естессно работает при условии использования пула. Дальше (см п.2) постгря может закешировать план (тут уж как сама решит, если не отключить)
4. ????
5. PROFIT (или нет)
> 1. Есть PREPARE. Если сделать prepare, то можно сэкономить на парсинге(ничтожно) Это зависит от запроса, конечно — вдруг там сотни килобайт или подставляются десятки views. ;) Но чаще всего, сильно сэкономить в самом деле не получится, мне кажется. По остальному — ещё prepare автоматически выполняется для "статических" запросов в функциях на plpgsql (и почти всех других PL, кажется).
только это не ничтожно, а очень ощутимо - в несколько раз ускоряются запросы
Обсуждают сегодня