sql >> データベース >  >> RDS >> PostgreSQL

Postgresql:別のクライアントでクエリが10倍遅くなります

    低速のクライアントがSSL暗号化を実行しているかどうかを確認することをお勧めします。デフォルトでは、サーバーにセットアップされ、クライアントがSSLサポートでコンパイルされている場合に発生します。

    大量のデータを取得するクエリの場合、時差が大きくなります。また、Debian / Ubuntuなどの一部のLinuxディストリビューションでは、ローカルホストを介したTCP接続の場合でも、デフォルトでSSLがオンになっています。

    例として、ウォームキャッシュを使用して合計64Mバイトの1,500万行を取得するクエリの時差を次に示します。

    暗号化なし:

    $ 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
    

    暗号化あり:

    $ 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
    

    グローバルにオフにするには、SSL=offを設定します。 postgresql.conf内 。

    特定の範囲のクライアントアドレスに対してオフにするには、pg_hba.confにエントリを追加します hostnosslを使用 より一般的なhostの前の最初のフィールド エントリ。

    クライアント側をオフにする場合は、ドライバーがsslmodeを公開する方法によって異なります。 接続パラメータ。そうでない場合は、PGSSLMODE ドライバーがlibpqの上に実装されている場合は、環境変数を使用できます。 。

    Unixドメインソケット(local)を介した接続について )、SSLはそれらと一緒に使用されることはありません。




    1. 最新のOracleDataProvider for .NET(11.2.0.3.20)がEF更新ウィザードを中断

    2. PHP、MYSQL、テーブルソーター付きのHTMLテーブル

    3. 単一の属性で一意のRails4クエリ

    4. Laravel.envファイルの環境固有のSSL構成