我讀過,當在數據庫上有很多索引它可以嚴重傷害性能,但在PostgreSQL文檔中我找不到任何有關它的信息。PostgreSQL SELECT的速度是否受到表上索引過多的負面影響?
我有一個很大的表,有100列和10億行,我經常需要在很多不同的領域做很多搜索。
如果我添加了很多索引(可能是10個唯一列索引和5或7 3列索引),PostgreSQL表的性能是否會下降?
編輯:性能下降我的意思是在提取行(選擇)中的性能,數據庫將每月更新一次,所以更新和插入時間不是問題。
我讀過,當在數據庫上有很多索引它可以嚴重傷害性能,但在PostgreSQL文檔中我找不到任何有關它的信息。PostgreSQL SELECT的速度是否受到表上索引過多的負面影響?
我有一個很大的表,有100列和10億行,我經常需要在很多不同的領域做很多搜索。
如果我添加了很多索引(可能是10個唯一列索引和5或7 3列索引),PostgreSQL表的性能是否會下降?
編輯:性能下降我的意思是在提取行(選擇)中的性能,數據庫將每月更新一次,所以更新和插入時間不是問題。
索引將不得不更新涉及這些列的每個insert
和update
。
我有一些圖表關於在我的網站:http://use-the-index-luke.com/sql/dml
索引是純粹的冗餘。它僅包含表中還存儲有 的數據。在寫入操作期間,數據庫必須保持這些冗餘一致。具體而言,這意味着插入,刪除 和更新不僅會影響表格,還會影響包含受影響數據的 副本的索引。
章節的標題暗示的影響,該指標可以有:
插入 - 不能採取直接受益於指數
刪除 - 使用索引的where子句
更新 - 不不影響表格的所有指標
如果您要在這裏發佈內容的關鍵部分,並將鏈接返回到您的(免責聲明)網站以獲取更多信息,那將會非常有用。 – PearsonArtPhoto
理論上表現寫由於每次寫入索引需要維護,因此對任何RDBMS表的操作都會下降。在這種情況下,我不會認爲文檔中沒有註釋表示沒有性能權衡,總是存在。與往常一樣,分析您的應用程序/數據庫以查看此折衷的確切成本。 –
[你可能想知道的所有關於SQL索引的東西](http://use-the-index-luke.com/) –
數據庫每月會更新一次或類似的東西,所以插入或更新的性能是不是很重要 – Topo