我是postgres的新手。我有一個名爲host
(string varchar2)的列,它有大約2000萬行。如何使用索引來優化我的搜索以查找特定的主機。另外,這個列會每天更新嗎?我是否需要在特定的時間間隔內編寫觸發器索引?如果是的話,我該怎麼做? (爲了記錄我使用Ruby和Rails 3)Postgres索引?
7
A
回答
7
假設你正在做的完全匹配,你應該能夠創建索引,讓它:
CREATE INDEX host_index ON table_name (host)
查詢優化器應該只使用自動。
您可能希望指定其他選項,例如要使用的排序規則。
查看PostgreSQL docs for CREATE INDEX瞭解更多信息。
0
我建議使用BRIN Index
自PostgreSQL 9.5引入,而不是傳統的btree索引。
0
對於文本搜索,建議您使用GIN或GiST索引類型。
https://www.postgresql.org/docs/9.5/static/textsearch-indexes.html
另一種可能性是,如果只執行確切在host
列匹配,即,沒有不等式比較(>
,<
)和涉及部分匹配(like
,通配符),則可以考慮轉換host
到一個散列整數以顯着加快搜索速度。
相關問題
- 1. postgres空間索引
- 2. postgres創建索引
- 3. 索引Postgres裏9.4+
- 4. Rails Postgres功能索引
- 5. Force Postgres索引創建
- 6. Postgres的全文索引
- 7. 索引未使用Postgres
- 8. Postgres:部分唯一索引
- 9. postgres:當使用索引
- 10. Postgres使用主鍵索引作爲覆蓋索引
- 11. 裏使用Postgres 9.5 GIN索引和JSONB
- 12. 在postgres上永久創建索引
- 13. postgres中的多變量索引
- 14. 快速拋開索引和postgres
- 15. Postgres索引2條件條件
- 16. Postgres SQL查詢忽略索引?
- 17. Postgres到Elastic Stack的ElasticSearch數據索引
- 18. 外鍵和主鍵Postgres和索引
- 19. 慢sql選擇與索引postgres
- 20. Postgres查詢不使用索引
- 21. 如何通過Django查詢Postgres索引
- 22. 查詢的索引表中的Postgres
- 23. postgres中文本列的索引
- 24. 使用GORM訂購postgres索引
- 25. 爲什麼Postgres不使用索引?
- 26. Postgres的GIST VS B樹索引
- 27. 郵件的postgres全文索引
- 28. Postgres索引最近的外鍵
- 29. postgres的前綴索引使用
- 30. Postgres的,重複的唯一索引
所以我不需要寫觸發器?當我的記錄更新時,索引是否會更新? –
更新記錄時索引更新。一般規則是,任何索引都會加快檢索速度,但會減慢更新信息的速度。因此選擇索引結構時要小心,它可能會極大地影響更新的性能。 – J0HN