我们有一个查询,它从主详细信息简单模式检索一些数据。where子句看起来像:
-- These are just random numbers
Where ticket.type_id in ( 2, 3, 4, 5, 7 ) and
(
ticket.color_id is null or
ticket.color_id in ( 1, 2 , 8 )
)
我们已经在ticket.type_id和ticket.color_id列中有了索引,但是查询解释分析仍然显示postgresql正在进行顺序扫描以满足查询。
这个查询在系统中非常重要并且经常出现,因此我们要为这个案例创建一个索引。
什么指数可以解决这个问题?
最佳答案
不太确定-但我想空值会让你…
也许像这样一个奇怪的结构
Where ticket.type_id in ( 2, 3, 4, 5, 7 ) and
(
nvl(ticket.color_id,1) in ( 1, 2 , 8 )
)
关于database - 为Postgres查询设计索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10905319/