sql - 使用索引提高 PostgreSQL 查询性能

标签 sql performance postgresql indexing

我在 Postgres 数据库上有一个 Rails 应用程序,它在很大程度上依赖于这样的查询:

SELECT DISTINCT client_id FROM orders WHERE orders.total>100

本质上,我需要订单满足特定条件的所有客户的 ID。我只需要 ID,所以我认为这比使用联接要快得多。

向“总计”列添加索引对我有好处吗?我不介意插入速度,我只需要查询运行得非常快。

最佳答案

我希望得到以下 multicolumn index最快:

CREATE INDEX orders_foo_idx ON orders (total DESC, client_id);

PostgreSQL 9.2 可以受益更多。凭借其“仅索引元组”功能,它可以在有利的情况下提供查询而无需访问表:自上次 VACUUM 以来没有写入。

DESCASC 在这种情况下几乎无关紧要。 B 树索引可以在两个方向上几乎同样有效地进行搜索。

关于sql - 使用索引提高 PostgreSQL 查询性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13790926/

相关文章:

php - 如何链接到搜索结果中主题的正确页面?

mysql - 每天列出每个类别中最畅销的商品,包括总销量和收入

PostgreSQL order by month name on distinction

ruby-on-rails - 计算行的偏移量

php - 是否可以将 sql 表值分配给 php 中的变量?

mysql - 日期范围内的总价(如酒店预订季节)

Java - 为什么响应时间会随着时间的推移而增加?

linux - 报告内存和 cpu 使用情况 - matlab - 在多核 linux 服务器上

安卓 : Getting "Cannot reload AVD list:" error at the time of execution

python - Psycopg2 使用占位符插入表格