【问题标题】:Ordering postgres indexes with GORM使用 GORM 对 postgres 索引进行排序
【发布时间】:2013-12-09 10:45:34
【问题描述】:

我想知道如何设置索引的默认顺序。 Grails 2.3.3,postgres 9。

目标是这个索引:

"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部分?

【问题讨论】:

  • 如果它不支持降序索引也不会太惊讶。许多模式生成器似乎不支持非常基本的索引之外的任何内容。也许它可能有一个 order: 'desc'order: desc 你可以添加?
  • 我想你可以检查一下postgre的hibernate方言,看看这个选项是否存在。

标签: postgresql grails grails-orm


【解决方案1】:

没有降序索引这样的东西。 B-tree 索引只是从最低值到最高值排序。 DESC 与 ASC 的定义是从末尾还是从头开始扫描。这是关于您执行的查询,所以我建议您查看如何执行以降序返回行的查询。

【讨论】:

  • 根据 postgres 手册,创建索引允许指定顺序。查询没问题。这是为了实现一个队列——顶部总是被抓取,所以预先排序是合乎逻辑的。我不记得测试了性能差异,无论您从逻辑上说索引查找操作是否相同,或者是否可以避免排序操作。索引规范是问题,所以这是一个有趣的点,但没有回答这个问题。 postgresql.org/docs/9.1/static/sql-createindex.html
  • 你确实是对的——我从来不知道。我猜 DESC 可能对单调递减的串行列有用。
猜你喜欢
  • 1970-01-01
  • 2020-11-17
  • 2022-07-05
  • 2020-11-01
  • 1970-01-01
  • 2012-09-07
  • 2016-01-01
  • 2021-09-02
  • 2014-10-31
相关资源
最近更新 更多