我正在构建一个TimescaleDB本地服务器,并创建我的第一个“生产”超表。关键是,目前,我的数据库的所有未来消费者都将以ASC
的顺序使用数据,但默认情况下,timescale在time列中创建DESC
索引。
我的疑问是,是否值得更改默认行为并将索引设置为ASC
?
我不知道默认情况下是否是DESC
,我会有一些惩罚。我也读到过postgresql中的索引可以反向读取,所以DESC
索引可以用于ASC
查询,但我不知道是否会有性能损失。
另一方面,简单地删除默认索引并创建一个具有不同顺序的新索引是否安全?也不知道如果删除它,我会搞砸一些时间尺度的内部功能。
谢谢你的时间
H25E
1条答案
按热度按时间aamkag611#
对于单列索引,创建为
ASC
还是DESC
根本无关紧要,因为索引可以以相同的效率双向读取。唯一需要在索引中指定
DESC
的情况是,索引应该支持ORDER BY
子句,如ORDER BY a, b DESC
。然后,其中一个索引列必须排序为ASC
,另一个为DESC
-但同样,哪个是ASC
,哪个是DESC
并不重要,因为索引可以在两个方向上读取。因此,对于单列索引,不需要再次构建索引,并且首先没有充分的理由创建它
DESC
(但这并不重要)。