Postgresql如何提高大型联接表排序的性能?

时间:2019-07-25 22:59:25

标签: postgresql performance sorting left-join

假设我有一个查询:

SELECT product.id, product.name, sku.usd FROM product LEFT OUTER JOIN sku on product.sku_id=sku.id ORDER BY sku.usd;

其中product表是包含几百万行的表。在这种情况下,有什么方法可以添加索引来帮助排序?此外,如果我在此联接表上有一些where子句,是否有任何方法可以提高性能?

1 个答案:

答案 0 :(得分:0)

如果您的数据库在hdd上运行,则可以在sku.usd上添加btree索引,并使用创建的索引对表进行群集。 因此,您将在表中对行进行物理排序。 如果您经常将数据插入到该表中,则只需要定期对表进行群集,例如每月一次。 请注意,cluster命令会在运行时阻止该表。