使用ORDER BY的查询的多列索引顺序

时间:2014-02-25 08:19:50

标签: sql postgresql indexing sql-order-by

如何为以下查询订购多列索引?

SELECT * 
FROM example_table 
WHERE a=3 AND b=4 
  AND c=5 ORDER BY d, e;

我假设我想创建一个带有a,b,c,d,e顺序的索引:

CREATE INDEX example_index 
    ON example_table (a, b, c, d, e); 

但是,我应该先将列中的顺序放在索引中吗?

CREATE INDEX example_index 
    ON example_table (d, e, a, b, c);

1 个答案:

答案 0 :(得分:0)

你想要第一个表格:

CREATE INDEX example_index ON example_table (a, b, c, d, e);

如果必须扫描整个索引以找到您感兴趣的行WHERE子句,则索引首先按所需的输出顺序排序是没有意义的过滤器。