PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Postgresql:Consulta 10x mais lenta em um cliente diferente


Você pode querer verificar se o cliente lento faz criptografia SSL ou não. Isso acontece por padrão quando está configurado no servidor e o cliente foi compilado com suporte a SSL.

Para consultas que recuperam grandes quantidades de dados, a diferença de tempo é significativa. Também algumas distribuições Linux como Debian/Ubuntu têm SSL ativado por padrão, mesmo para conexões TCP através de localhost.

Como exemplo, aqui está a diferença de tempo para uma consulta recuperando 1,5 M de linhas com um total de 64 Mbytes, com um cache quente.

Sem criptografia:
$ psql "host=localhost dbname=mlists sslmode=disable"
Password: 
psql (9.1.7, server 9.1.9)
Type "help" for help.

mlists=> \timing
Timing is on.
mlists=> \o /dev/null
mlists=> select subject from mail;
Time: 1672.258 ms

Com criptografia:
$ psql "host=localhost dbname=mlists"
Password: 
psql (9.1.7, server 9.1.9)
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.

mlists=> \o /dev/null
mlists=> \timing
Timing is on.
mlists=> select subject from mail;
Time: 7017.935 ms

Para desativá-lo globalmente, pode-se definir SSL=off em postgresql.conf .

Para desativá-lo para intervalos específicos de endereços de clientes, adicione entradas em pg_hba.conf com hostnossl no primeiro campo antes do host mais genérico entradas.

Para desativá-lo no lado do cliente, depende de como o driver expõe o sslmode parâmetro de conexão. Caso contrário, o PGSSLMODE variável de ambiente pode ser usada se o driver for implementado em cima de libpq .

Quanto às conexões através de soquetes de domínio Unix (local ), o SSL nunca é usado com eles.