Postgresql
為什麼 pg_stat_statement 需要包含在 shared_preload_libraries 中?
我正在開發 AWS RDS Postgres v9.6 和 v14。我注意到在我們的
shared_preload_libraries
參數中,我們已經pg_stat_statement
包含了。我不明白為什麼需要在那裡。在 Postgres文件中,它是這樣說的:
該模組必須通過添加 pg_stat_statements 到 postgresql.conf 中的 shared_preload_libraries 來載入,因為它需要額外的共享記憶體。這意味著需要重新啟動伺服器才能添加或刪除模組。
但是,已經內置了其他幾個擴展 - 例如我們使用
dblink
和hstore
. 這些不需要在shared_preload_libraries
. 為什麼pg_stat_statement
行為不同?我認為闡明這一點將幫助我(希望其他人)更好地理解內置庫的工作原理,尤其是在
shared_preload_libraries
參數方面。文件似乎對這個主題說得不夠多,否則我不知道在哪裡可以找到它。
pg_stat_statements
將其數據儲存在共享記憶體段中,PostgreSQL 只允許您在伺服器啟動時創建共享記憶體段。所以擴展必須在伺服器啟動時載入。