2013-12-09 75 views
2

我想知道如何設置索引的默認訂單。 Grails的2.3.3,Postgres的9使用GORM訂購postgres索引

目標是該指數:

"crstate_idx" btree (cr_state, last_updated DESC) 

這GORM代碼:

static mapping = { 
    crState index: 'crState_Idx' 
    lastUpdated index: 'crState_Idx' 
} 

獲取我:

"crstate_idx" btree (cr_state, last_updated) 

如何加入DESC部分?

+0

如果它不支持降序索引,不會太驚訝。很多模式生成器似乎不支持超過非常基本的索引。也許它可能有一個命令:'desc''或'order:desc'你可以用它來粘貼嗎? –

+1

我想你可以檢查postgre的hibernate方言,看看這個選項是否存在。 –

回答

1

有沒有這樣的事情,作爲一個降序索引。 B樹索引只是從最低值到最高值排序。 DESC與ASC的定義是,如果您從頭到尾或從​​頭開始掃描它。這是關於你執行的查詢,所以我建議你看看如何執行查詢以降序返回行。

+0

根據postgres手冊,創建索引允許指定順序。查詢很好。這是爲了實現一個隊列 - 頂部總是被抓住,所以邏輯上預先排序。我不記得測試性能差異,無論是從邏輯上說,索引查找操作是相同的還是可以避免排序操作。索引規範是個問題,所以這是一個有趣的觀點,但並沒有回答這個問題。 http://www.postgresql.org/docs/9.1/static/sql-createindex.html – Interlated

+0

你確實是對的 - 我從來不知道。我猜DESC可能對於單調減少串行列很有用。 – kristok