【问题标题】:Create index for lower case of a to z characters为 a 到 z 字符的小写创建索引
【发布时间】:2015-06-05 03:41:04
【问题描述】:

我有一个数据库列,它允许我们存储小写 a 到 z 字符和“空格”。我们如何创建具有更具体表达式的索引。

我们需要这个特定的索引来改善“Order by”子句的性能问题。

这里的性能问题是,当我们对大量表列进行“排序”时,它会产生问题。如果按列的顺序是日期或整数,那么它会更快,但对于 varchar 类型的列来说不是。

我们希望通过向 varchar 列添加特定索引或做出其他决定来加快查询速度

【问题讨论】:

  • 您是否尝试过在列上创建一个实际的INDEX
  • 是的,我试过了。返回结果仍然需要 5000 毫秒。我尝试过使用较低(列)索引来帮助我们减少 2500。因此将尝试获取可以创建的任何特定索引。像 a 到 z 字符和单独的“空格字符”

标签: sql postgresql indexing


【解决方案1】:

首先,我建议看看这个页面:http://www.postgresql.org/docs/9.4/static/indexes-expressional.html

其次,order by 是在字段上,还是在表达式上?我的意思是,如果您的订单是:

ORDER BY col1

你只需要像这样索引:

CREATE INDEX idx_table_col1 ON yourtable (col1);

如果您的 ORDER BY 是:

ORDER BY lower(col1)

然后:

CREATE INDEX idx_lower_col1_table ON yourtable (lower(col1));

无论如何,为了改善您的问题,我建议:

  • 显示您的查询
  • 显示使用 EXPLAIN ANALYZE 检索的执行计划
  • 显示您的表和索引

【讨论】:

    猜你喜欢
    • 2013-11-07
    • 2013-12-11
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    • 2012-10-06
    • 2012-06-25
    • 2018-08-01
    • 1970-01-01
    相关资源
    最近更新 更多