簡體   English   中英

Postgres Gin Index 讀取性能

[英]Postgres Gin Index read performance

官方文檔指出:

與表達式索引相比,單獨列方法的一個優點是......另一個優點是搜索會更快,因為不需要重做 to_tsvector 調用來驗證索引匹配。

為什么 gin 表達式索引to_tsvector('english', body)必須“驗證索引匹配”? 似乎每次更新/插入后索引都會自動更新,所有索引都有相同的更新問題,這可能不是要關注的問題。

我認為這涉及必要的“重新檢查”,因為 GIN 索引掃描可能有損:它將返回包含您搜索的tsvector中所有元素的值。 所有這些行都被重新檢查以查看它們是否真的與tsquery匹配。 這意味着針對索引掃描返回的所有行評估to_tsvector function。

正如文檔所說,這對 GIST 比對 GIN 更重要。

如果 work_mem 太小而無法容納整個 bitmap,則仍需要重新檢查 GIN 索引,因此它們 go 有損。 如果模式使用相對的 position 指標(如<-><2>等),也需要重新檢查它們。

如果您有許多& ed together 標記,它可能還需要重新檢查,它只是決定重新檢查它們中更常見的,而不是為它們煩惱所有位圖(我不確定這里是否真的這樣做——我'我從來沒有為@@目睹過它,但沒有檢查整個代碼我不能排除這種可能性)或者如果你有復雜的 boolean tsquery 表達式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM