Postgres上的ecto:在(...)中生成查询

时间:2018-06-22 00:47:14

标签: postgresql elixir ecto

我有一个Ecto查询,该查询在一组值中查找包含一列的行。这样的事情(使用虚构的博客域):

Post
|> where(state in ^["published", "draft"])

这将生成如下子句:

p0.state = ANY($1)

["published", "draft"]作为参数。

数据库为Postgres 9.6。运行说明显示此查询的成本比supposed to be the equivalent clause高得多(很多数量级):

p0.state in ($1)

我在state上有一个索引。

我不知道这是否是由于Postgres本身的性能问题引起的,但是我发现了一些提示。

我希望能够解决性能问题,或者影响Ecto来生成p0.state in ($1)

有什么建议吗?

0 个答案:

没有答案