如何从具有大量记录的表中选择唯一记录

时间:2019-01-24 11:09:07

标签: postgresql

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

enter image description here

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

我想选择所有记录,但是我不想重复,这些记录具有相同的引用。

我尝试如下查询:

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

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

还有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

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