postgresql - 调整两列与一组整数的比较

标签 postgresql indexing database-performance performance

有这个 WHERE 子句:

WHERE detail.element_id IN (4, 5, 6, 7, 8) AND
      (
        detail.additionalelement_id IS NULL OR
        detail.additionalelement_id IN (4, 5, 6, 7, 8)
      )

我们可以创建什么样的索引/对象来优化查询的性能?
您将如何以更有效的方式重写此子句?

最佳答案

并在 detail(element_id)detail(additionalelement_id) 上创建一个索引,让 postgres 决定使用哪个。

(编辑为使用 coalesce(detail.additionalelement_id, -1) 删除)

关于postgresql - 调整两列与一组整数的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10801023/

相关文章:

sql - 前几行数组的累积数组?

sql - Postgresql在不同服务器上的不同查询计划

seo - 防止谷歌索引动态错误页面(无 404)

c - 链接列表指针的位置(索引)问题

oracle - Oracle Enterprise Manager 中的事件 session 和用户 I/O 是什么意思?

mysql - 使用 Qt/MySQL 批处理模式时的性能

ruby-on-rails-3 - 在 Rails 3 应用程序中本地使用 Heroku Postgres 数据库

sql - PostgreSQL 转换数据

Java - 如何获取数组中给定元素的索引

mysql - Amazon Linux EC2 Webserver/MYSQL 升级 – 流量导致错误建立数据库连接