Postgres订单栏索引

时间:2019-03-26 12:51:06

标签: postgresql

我有表格章节,每个章节都有唯一的ID和订单号:

章节:

id | name   | book_id | order
1  | First  | 1       | 1
2  | Second | 1       | 2
3  | First  | 2       | 1
4  | Second | 2       | 2

我通过查询选择它:

SELECT * FROM chapters where book_id=1 ORDER BY order

我是否需要在订单列上创建普通索引,还是应该以某种方式为每本书分开该索引,因为如果我为一本书选择1000章,那么我就不需要另一本书的索引。

或者也许有一种连击方式使一本书的章节可以更改顺序?

1 个答案:

答案 0 :(得分:2)

您可以尝试在表中添加以下索引:

CREATE INDEX idx ON chapters (book_id, "order");

这应该使Postgres轻松查找具有某个book_id值的记录,然后按order列对结果集进行排序。

请注意,ORDER是保留的SQL关键字,因此您应该避免使用它来命名列和表。