我們可以讓postgres爲特定的表使用緩存,並且根本不用於少數表嗎?我們可以讓postgres爲特定的表使用緩存嗎?
回答
不,您無法控制將要緩存的內容。
但是,如果這是一個頻繁訪問的表,它將被緩存。如果不經常訪問它,它不會被緩存。
所以我沒有看到試圖控制這個的原因。
你不能那樣做。 PostgreSQL本身就很好地維護它。事實上,我想不出你想修改這種行爲的情況。
如果您發現問題(例如使用太多緩存的表),則可能意味着該表無效(例如,使用seq掃描進行查詢)。如果某些表使用很少的緩存,則可能是因爲只有很少的最佳緩存,或者因爲總緩存大小太小。無論哪種方式,PG都盡其所能。
究竟是什麼讓你問這個問題?
PostgreSQL 和操作系統會做得更好。你不使用的數據,不會在緩存中,數據你做使用,是在緩存中。你不想打你的數據庫和操作系統,這是沒有必要的。
爲了讀取數據並對其進行操作,PostgreSQL必須將其放入緩存中。這樣做也會暫時將其暫時存放在操作系統緩存中。一旦進程在我的Inside the PostgreSQL Buffer Cache討論中停止使用它,您可以找到有關數據最終如何從數據庫的緩存中逐出的確切說明。
通過減小shared_buffers參數的大小,您可以從緩存中更快地逐出,這可能會導致性能下降。 PostgreSQL始終使用OS緩存進行讀取,並且無法防止在訪問大量數據時受到污染。
對順序掃描進行了優化,可以使數據庫自己的shared_buffers緩存不被該數據接管。大於(shared_buffers/4)的表僅限於在數據庫端使用少量內存。儘管如此,這些仍然會對操作系統緩存產生影響,但這些緩存往往會比數據庫所需的時間更少。
爲什麼不使用pgfincore將表存儲在OS緩存中?
流動的博客顯示如何使用它。 http://francs3.blog.163.com/blog/static/4057672720107541611270/
- 1. 我們可以讓Emacs緩衝區爲靜態/固定?
- 2. 我們可以爲特定版本啓用遊戲中心嗎?
- 3. 我可以從Firefox緩存中刪除特定文件嗎?
- 4. 我們可以使用SQLAlchemy獲取postgres數據庫轉儲嗎?
- 5. 我們可以以編程方式緩存谷歌地圖嗎?
- 6. 我們可以爲wordpress創建表嗎?
- 7. 我可以用php緩存嗎?
- 8. 我可以使用artifactory作爲本地npm緩存嗎?
- 9. 我們可以在iPhone上緩存解析的XML數據嗎?
- 10. 在插入的運行時查詢數據:我們可以使用緩存嗎?
- 11. 可以/我應該使用ConcurrentMap和我自己的緩存嗎?
- 12. 我可以在CakePHP的行爲中使用特定模型嗎?
- 13. 我們可以讓Emacs找到變量的定義嗎?
- 14. URL變量和PHP重定向,它們可以被緩存嗎?
- 15. 我可以使用Magento的緩存層作爲鍵/值存儲嗎?
- 16. 我們可以使用HDFS來存儲git存儲庫嗎?
- 17. 魷魚 - 我可以使用url清除squid緩存中的緩存對象嗎?
- 18. 我可以只使用worksheet_change作爲特定列嗎?
- 19. 我可以關閉.ivy緩存嗎?
- 20. 我可以緩存jquery .map文件嗎?
- 21. 我可以繞過OpenCL緩存嗎?
- 22. 我可以使用Varnish使任意緩存條目無效嗎?
- 23. 我可以使用Spring的緩存功能嗎?
- 24. 我們可以使用AJAX和XHTML嗎?
- 25. 我們可以顯示特定DIV的adMob廣告嗎?
- 26. 我們可以在java中設置特定的時間嗎
- 27. 我可以使用AccountManager讓用戶使用他們的Google帳戶登錄嗎?
- 28. 我可以將我的表格存儲調用緩存在天藍色中嗎?
- 29. 我可以讓std :: string使用更少的內存嗎?
- 30. 我們可以使用自定義卡支付使用ApplePay嗎?
seq掃描不一定會將表的數據放入共享緩衝區。我認爲有一個閾值(以表的行數的百分比表示),行之外不會進入共享緩衝區 - 但我可能會誤會 – 2011-02-15 19:12:25