Thread: how to make PostgreSQL JDBC driver transfer data as binary ratherthan as a string

how to make PostgreSQL JDBC driver transfer data as binary ratherthan as a string

From
Leonid Mikhailov
Date:

Hello,

 

During performance testing of our application we have noticed that the amount of data being transferred from PostgreSQL database to the application when fetching content of a BYTEA field is twice the size of the data stored in this field. Once received the volume of the data is exactly the same as stored. It seems that it happens because the data is transferred as a string rather than as a binary. According to the doc (https://jdbc.postgresql.org/documentation/head/connect.html) it should be possible to tell JDBC driver to use binary protocol by appending binaryTransferEnable = BYTEA to the end of the JDBC connection URL, like this:

jdbc:postgresql://<servername>:7654/<databaseName>?binaryTransferEnable=BYTEA

Unfortunately it doesn’t seem to make any difference. Are we doing something incorrectly?

 

Thanks,

Leonid

 

Hi, Leonid.

BYTEA should already be transferred in binary[1].

[1]
https://github.com/pgjdbc/pgjdbc/blob/ed5f750beb387a8846e5aa79a775e2d49b48b3c4/pgjdbc/src/main/java/org/postgresql/jdbc/PgConnection.java#L300

On Thu, Mar 28, 2019 at 1:19 PM Leonid Mikhailov <lmikhailov@esri.com> wrote:
>
> Hello,
>
>
>
> During performance testing of our application we have noticed that the amount of data being transferred from
PostgreSQLdatabase to the application when fetching content of a BYTEA field is twice the size of the data stored in
thisfield. Once received the volume of the data is exactly the same as stored. It seems that it happens because the
datais transferred as a string rather than as a binary. According to the doc
(https://jdbc.postgresql.org/documentation/head/connect.html)it should be possible to tell JDBC driver to use binary
protocolby appending binaryTransferEnable = BYTEA to the end of the JDBC connection URL, like this: 
>
> jdbc:postgresql://<servername>:7654/<databaseName>?binaryTransferEnable=BYTEA
>
> Unfortunately it doesn’t seem to make any difference. Are we doing something incorrectly?
>
>
>
> Thanks,
>
> Leonid
>
>