_avz |
---|
Не нашёл встроенной функции, которая смогла бы агрегировать например набор целых чисел в бинарный шматок. (Зачем надо, вопрос отдельный, вкратце - тотальная оптимизация обмена К-С). Написал свою, но, возможно, есть лучшее решение в плане быстродействия? |
Прежде чем начинать это делать надо
1)понять ваш клиент по какому протоколу работает с базой (текстовому или бинарному)
Если по текстовому то учитывая что в bytea с хорошими шансами каждый байт bytea передается в протоколе текстом вида \\xxx (т.е. 5ть байтами) то вы вряд ли на этом получите какой то разумный выйгрыш на старых версиях базы. На новых версиях базы можно попробовать bytea_output=escape и тогда каждый байт будет всего 2мя байтами передаваться, что тоже не думаю что вас порадует. Такие вещи стоит тестировать перед тем как начинать делать.
В случае бинарного протокола как там передается bytea между клиентом и сервером вопрос открытый.
Скорее всего заметного выйгрыша вы не пролучите.
PS: для передачи набора чисел есть массивы.
--
Maxim Boguk
www.postgresql-consulting.ru