0
我想知道在哪裏/如何讓PostgreSQL(9.6)處理二級存儲(例如硬盤驅動器)和內存緩衝區之間的內存問題?如何使用PostgreSQL服務器編程(SPI)處理緩衝區和輔助存儲?
例如,當查詢的元組不在緩衝區中時,如何將相關數據加載到內存中;以及如何在內存緩衝區滿時將某些數據刷新到磁盤?
我以前沒有做過服務器編程。但是當我看了Server Programming Interface和關於memory management的部分時,我找不到任何提及的「二級存儲」或「緩衝區」等。這些問題在哪裏處理?
任何人都可以提供一些關於這方面的指針嗎?
感謝您的回答。 「存儲管理和數據緩衝發生在不同的,更低的層次上,而且你不能通過SPI來影響。」那麼SPI之外有沒有辦法確保服務器擴展(例如,可以處理存儲管理)?即由於主存儲器限制而不產生內存不足錯誤。 – tinlyx
爲此,您必須正確配置操作系統和數據庫參數。如果內存不足,無法避免OOM ......您嘗試解決的真正問題是什麼? –
例如,如果函數所需的數據超過物理內存而非硬盤空間,則在C中編寫自定義SQL函數,但不要使用OOM。 – tinlyx