我有一个物化视图,其中包含我最查询的数据的几列。每列用于子句的位置,每列用于对空值的升序和降序进行最后排序。
我最初只是声明了一个多列索引,索引中列出了所有列,但是后来我发现任何包含orderby的查询都非常慢。
在此表上声明索引是什么权利?
我应该这样做吗?
ImageDownloader.default.downloadImage
我不确定这是否太多,也不必为每个列声明3个索引。
答案 0 :(得分:0)
坏消息是您需要为每一列声明单独的索引。没有办法解决这个问题,因为您将需要按任何这些列进行排序,并且-在发生这种情况时-该列需要在索引位置中排在第一位。这是为了确保SQL优化器使用索引范围扫描。
好消息是每一列只需要一个。 PostgreSQL能够按正序和反向顺序使用每个索引。
我不确定您是否需要为NULLS LAST
创建辅助密钥。您需要进行测试。