Почему запросы из двоичного файла используют больше места в основной памяти, чем текстовый файл через Postgres file_fdw?

Я использую файл данных Postgres (file_fdw) для выполнения запроса из удаленного файла. Интересно, что я видел, что если Postgres выполняет запрос к двоичному файлу, он использует больше места в основной памяти, чем текстовый файл, такой как.csv. Кто-нибудь может подтвердить, почему это произошло? Есть ли способ оптимизировать это?

Мой файл содержит два столбца (id | geometry), здесь geometry представляет полигон. Итак, моя внешняя таблица состоит из двух столбцов. Я проверил с помощью запроса соединения, такого как ST_Overlaps() и ST_Contains() для CSV-файла и Postgres-совместимого двоичного файла.

SELECT COUNT(*) FROM ftable1 a, ftable2 b WHERE ST_Overlaps(a.geom, b.geom);

Я проверил использование памяти PostgreSQL с помощью htop и увидел, что если Postgres выполняет запрос к двоичному файлу, он использует больше места в основной памяти, чем файл CSV. Например, если это 500 МБ для CSV, то почти 1 ГБ для двоичного файла. Зачем?

0 ответов

Другие вопросы по тегам