タイプ: string
コンテキスト: postmaster
再起動: true

この変数はサーバ起動時にプリロードされる一つ以上の共有ライブラリを指定します。スーパーユーザだけがこの設定を変更できます。このパラメータはサーバ起動時にのみ設定可能です。もし指定したライブラリが見つからない場合は、起動は失敗します。

ライブラリによってはpostmaster起動時にのみ可能な操作を実行する必要があるものがあります。たとえば、共有メモリの獲得、軽量ロックの予約、バックグラウンドワーカの起動などです。このようなライブラリはこのパラメータを使ってサーバ起動時にロードしなければなりません。詳細は各ライブラリのドキュメントを見てください。

これ以外のライブラリもプリロードできます。共有ライブラリをプリロードすることにより、最初にライブラリが使われる際にライブラリが起動する時間を避けることができます。しかし、そのライブラリが使われないとしても、サーバプロセスが起動する時間がわずかに長くなる可能性があります。したがって、この方法は、ほとんどのセッションで使われるライブラリにのみ使用することを推奨します。また、パラメータの変更にはサーバの再起動が必要になります。ですから、たとえば短期のデバッグ仕事にこの設定を使うのは適当とは言えません。session_preload_librariesを代わりに使ってください。

Windowsのホストでは、ライブラリのプリロードは、新しいサーバプロセスの起動に要する時間を短縮しません。個々のサーバプロセスは、すべてのプリロードライブラリを再読み込みします。それでもpostmaster起動時に操作を実行しなければならないライブラリを使用するWindowsホストにとってはshared_preload_librariesは有用です。

推奨事項 [EN]

Primarily used for custom C libraries (data types, stored procedures) which you expect your application to use heavily. Trades memory overhead for these libraries against load time, so really should only be used for libraries you expect most queries to require.

件のコメント