小编bal*_*teo的帖子

多列索引和 OR 子句

我的message应用程序中有一个表,该表上最常执行的 SQL 查询之一如下:

select * from message message0_ 
 where message0_.sender_id=? or message0_.recipient_id=?
 order by message0_.send_date asc;
Run Code Online (Sandbox Code Playgroud)

我基本上是在查询当前用户已收到或发送的消息。

sender_id&的参数值recipient_id是当前用户 ID。

我创建了以下索引:

CREATE INDEX ON message(recipient_id, sender_id);
Run Code Online (Sandbox Code Playgroud)

我想知道字段的顺序是否对我的用例很重要,请记住我的 SQL 查询中的 OR 子句。

有人可以帮忙吗?

postgresql performance index postgresql-performance

9
推荐指数
1
解决办法
2902
查看次数