2016-12-29 33 views
1

在PostgreSQL,我可以對非物化視圖的索引?是否有可能在非物化視圖上有索引?

我使用視圖中我的應用程序,它基本上運作良好,但我想加快進入其數據。我可以切換到物化視圖,但我不想刷新它。

+0

索引可以幫助。只要視圖是行的子集而不是聚合。 – Jasen

回答

3

http://postgresql.nabble.com/Indexes-not-allowed-on-read-only-views-Why-td4812152.html

在postgres的,視圖基本上是宏,因此不存在數據索引

正常(非物化)視圖沒有任何自己的數據,它 在執行查詢 期間,將其從一個或多個其他表中拉動。視圖的執行是一種類似於 設置返回函數或子查詢,彷彿你會取代 視圖定義爲原始查詢。

這意味着,該視圖將使用任何索引上的原始 桌,但沒有真的連檢查 上的索引視圖自身,因爲該視圖的定義 有效地代入一個機會查詢。如果視圖定義是 不夠,它做了很多工作,其中在 原始表(S)指標不利於複雜,工作有充分的時間來完成。

什麼你CAN做的是使用觸發器來維護自己的物化 意見常規表,並且對你保持 使用觸發器表的索引。這是在郵件列表上廣泛討論,而不是 很難做到,雖然它的棘手進行更新一些 種物化視圖的查詢表現良好。在原始表(或原表的功能)

相關問題