续集宝石重新订购postgres数据库?

时间:2018-02-14 02:36:58

标签: ruby postgresql sequel

我使用Sequel gem和一个有300k +条目的postgres数据库。我试图尽快获得最早和最新的条目,但是我迁移了数据库,并且一些条目按时间顺序失序。

如果我使用mydb[:items].firstmydb[:items].last,则查询只需要几分之一秒。但是,就像我说的那样,它们并不完全按照时间顺序排列,所以可能会搞砸了。如果我运行mydb[:items].order(:time).firstmydb[:items].order(:time).last,它可以运行,但需要更长时间(大约6秒)才能完成每个查询。

有没有办法重新排序数据库,所以它按时间顺序自然而然,所以我不必运行命令命令?或者我只是做错了什么?

1 个答案:

答案 0 :(得分:1)

如果您想以特定顺序获取记录,则必须使用订单子句。如果没有提供sort子句,大多数数据库都不保证订单。

您应该按照用于排序的字段对表进行索引。