Postgres order column index



我有表格章节,其中每一章都有它的唯一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 章,我就不需要另一本书的索引。

或者也许有一种使一本书章节改变顺序的打击方法?

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

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

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

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

相关内容

最新更新