Искал все подряд и так и не смог найти однозначного ответа. Я только начинаю создавать архитектуру приложения, и мы решили использовать Postgresql для нашей базы данных и C для сервера. Однако некоторые начальные тесты показывают некоторую сбивающую с толку цифру. Кажется, что доступ к базе данных через текстовые строки - самый быстрый метод, который мне кажется нелогичным. Конечно, база данных хранит целые числа и числа с плавающей запятой внутри как двоичные и должна преобразовывать их для представления в виде текста, который затем мне нужно преобразовать обратно в двоичный файл, чтобы использовать. Кажется, более быстрым путем было бы просто оставить все как двоичное, но на сегодняшний день я не могу получить двоичный доступ, чтобы продемонстрировать это преимущество.
Вот простой тестовый пример, который я построил, чтобы показать, что я вижу (схема + код)
И я вижу такие моменты времени:
Начало итерации 0 ... Итерация 0: получено 50000 двоичных записей через PQparamExec за 35 секунд Итерация 0: получено 50000 двоичных записей через PQexecf за 34 секунды Итерация 0: получено 50000 текстовых записей через PQexec за 25 секунд
Дополнительные итерации просто более или менее повторяют этот шаблон. Я также пробовал напрямую использовать libpq с аналогичными результатами, но не переносил их в этот тестовый пример.
Это соответствует твоему опыту, или я просто где-то дурак?
Спасибо!