sql >> Databáze >  >> RDS >> PostgreSQL

Postgresql:Dotaz 10x pomalejší v jiném klientovi

Možná budete chtít zkontrolovat, zda pomalý klient šifruje SSL nebo ne. Ve výchozím nastavení se to stane, když je nastaveno na serveru a klient byl zkompilován s podporou SSL.

U dotazů, které načítají velké množství dat, je časový rozdíl významný. Také některé distribuce Linuxu, jako je Debian/Ubuntu, mají standardně zapnuté SSL, a to i pro připojení TCP přes localhost.

Jako příklad uvádíme časový rozdíl pro dotaz načítající 1,5 milionu řádků o celkové hmotnosti 64 MB s teplou mezipamětí.

Bez šifrování:

$ 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

Se šifrováním:

$ 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

Chcete-li jej globálně vypnout, můžete nastavit SSL=off v postgresql.conf .

Chcete-li jej vypnout pro konkrétní rozsahy klientských adres, přidejte položky do pg_hba.conf s hostnossl v prvním poli před obecnějším host záznamy.

Vypnutí na straně klienta závisí na tom, jak ovladač zpřístupňuje sslmode parametr připojení. Pokud ne, PGSSLMODE Proměnná prostředí může být použita, pokud je ovladač implementován nad libpq .

Pokud jde o připojení prostřednictvím soketů domény Unix (local ), SSL se u nich nikdy nepoužívá.




  1. Řešení pro limit Access 255 Columns Limit

  2. Chyba připojení RODBC odbcDriverConnect()

  3. MySQL/Hibernate – Jak odladím sdružené připojení MySQL, které neustále vypadává?

  4. Rails 5 Mysql UUID