我有一張表,其中包含大量的記錄,但其中只有一部分是「積極」在任何時候,我的網絡應用程序只需引用那些。我有一個每晚運行的更新過程,它會添加新的(活動)記錄並可能重新激活較舊的記錄。Postgres會自動緩存大表中的「活動」記錄嗎?
postgres能夠找出它應該緩存活動記錄嗎?如果不是,我應該將活動記錄移動到一個新表格中來幫助它 - 還是有其他方式給它一個「提示」?
更新 - 活動記錄由具有稱爲END_DATE
感謝
我有一張表,其中包含大量的記錄,但其中只有一部分是「積極」在任何時候,我的網絡應用程序只需引用那些。我有一個每晚運行的更新過程,它會添加新的(活動)記錄並可能重新激活較舊的記錄。Postgres會自動緩存大表中的「活動」記錄嗎?
postgres能夠找出它應該緩存活動記錄嗎?如果不是,我應該將活動記錄移動到一個新表格中來幫助它 - 還是有其他方式給它一個「提示」?
更新 - 活動記錄由具有稱爲END_DATE
感謝
我不知道你所說的「活動記錄」的意思在日期時間字段中的NULL值表示,可能是一個Postgres的術語我只是想念。如果您只是指名爲「active」的行,請爲其指定一個索引。 Postgres的這種方式可以直接訪問它們卻不橫行搜索,所以在這樣一個高速緩存的方式it's(rebuildt每次你改變行)
操作系統將高速緩存活動和最近使用過的磁盤塊。 PostgreSQL主要依靠操作系統磁盤緩存。但是,它自己的shared_buffers
也會緩存熱門頁面。
聽起來這是一種非常迂迴的說法:「我認爲這些問題比我們想象的要慢」。考慮http://wiki.postgresql.org/wiki/Slow_Query_Questions和https://stackoverflow.com/tags/postgresql-performance/info
讀真的能與更多的信息,做這些記錄是如何「主動」與否。 –