首页 > 解决方案 > 如何从具有大量记录的表中选择唯一记录

问题描述

我使用 postgresql,我有一个包含超过 500 万条记录的数据库表。表结构如下:

在此处输入图像描述

每天都会插入很多记录。有很多相同的记录reference

我想选择所有记录,但我不希望重复,具有相同参考的记录。

我尝试查询如下:

SELECT DISTINCT ON (reference) reference_url, reference FROM daily_run_vehicle WHERE handled = False and retries < 5 ORDER BY reference DESC;

它执行了,它给了我正确的结果,但是执行需要很长时间。

有没有更好的方法来做到这一点?

标签: postgresql

解决方案


  1. 在您在 where 条件中使用的列上创建排序键
  2. 将大数据移动到表中后,我们需要执行“vacuum”命令,它将刷新所有键,然后使用“Analyze”命令分析表。它将有助于重建表的统计信息。

推荐阅读