sql >> Database >  >> RDS >> PostgreSQL

Postgresql:Query 10x langzamer in een andere client

Misschien wilt u controleren of de trage client SSL-codering gebruikt of niet. Het gebeurt standaard wanneer het op de server is ingesteld en de client is gecompileerd met SSL-ondersteuning.

Voor zoekopdrachten die grote hoeveelheden gegevens ophalen, is het tijdsverschil aanzienlijk. Ook hebben sommige Linux-distributies zoals Debian/Ubuntu SSL standaard ingeschakeld, zelfs voor TCP-verbindingen via localhost.

Als voorbeeld, hier is het tijdsverschil voor een query die 1,5 miljoen rijen ophaalt met een totaal van 64 MByte, met een warme cache.

Zonder codering:

$ 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

Met encryptie:

$ 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

Om het globaal uit te schakelen, zou men SSL=off kunnen instellen in postgresql.conf .

Om het uit te schakelen voor specifieke bereiken van klantadressen, voegt u items toe in pg_hba.conf met hostnossl in het eerste veld voor de meer algemene host inzendingen.

Om de client-side uit te schakelen, hangt het af van hoe het stuurprogramma de sslmode blootlegt verbindingsparameter. Als dit niet het geval is, wordt de PGSSLMODE omgevingsvariabele kan worden gebruikt als het stuurprogramma is geïmplementeerd bovenop libpq .

Wat betreft verbindingen via Unix-domeinsockets (local ), SSL wordt er nooit mee gebruikt.




  1. Hoe de Postgres-server starten?

  2. Aangepaste volgorde in Oracle SQL

  3. Mysql datetime index werkt niet bij gebruik van 'like'

  4. Hoe bekijk je ALLE tekst van een ntext of nvarchar (max) in SSMS?