select t.createdDate, t.createdDateTicks from ic_v10_mammoet t where t.type='asset' and t._sync.rev is not null ORDER BY t.createdDateTicks ASC LIMIT 10 OFFSET 0
上面的查询需要6秒才能返回结果,当我删除ORDER BY子句时,它只需要18 MS
select t.createdDate, t.createdDateTicks from ic_v10_mammoet t where t.type='asset' and t._sync.rev is not null LIMIT 10 OFFSET 0
我在createdDateTicks上有一个索引,它是整数字段。
我尝试了workaround中提到的解决方法作为最后一条评论但不起作用。
有人可以提出建议吗?
索引是:CREATE INDEX asset_createdDateTicks ON ic_v10_mammoet (createdDateTicks) WHERE type = 'asset'
答案 0 :(得分:1)
这是解决方法。
CREATE INDEX idx_neg_date ON docs( -createDateTicks ) WHERE type = 'asset';
SELECT t.createdDate, t.createdDateTicks
FROM docs AS t
WHERE t.type='asset' AND -t.createdDateTicks IS NOT NULL
ORDER BY -t.createdDateTicks ASC LIMIT 10 OFFSET 0;