Database 按时间字段(其中auto_now_add=True)对表进行排序是否等同于按所述表的主键ID对其进行排序?

Database 按时间字段(其中auto_now_add=True)对表进行排序是否等同于按所述表的主键ID对其进行排序?,database,postgresql,indexing,query-optimization,Database,Postgresql,Indexing,Query Optimization,假设一个数据库表具有time_of_insert属性,该属性由每次插入的当前时间自动填充,例如,在Django模型的示例中,该属性具有auto_now_add=True 在这种情况下,按插入时间对所述表进行排序是否等同于按每行的ID主键对其进行排序 背景:我问这个问题是因为我有一个表,其中有一个自动创建的timeofinsert属性。我目前正在按插入的时间对所述表进行排序;此字段没有索引。我觉得我可以简单地按id对其排序,而不是按插入时间索引-这样我可以得到快速的结果,而且我不必为多个表列编制索

假设一个数据库表具有time_of_insert属性,该属性由每次插入的当前时间自动填充,例如,在Django模型的示例中,该属性具有auto_now_add=True

在这种情况下,按插入时间对所述表进行排序是否等同于按每行的ID主键对其进行排序

背景:我问这个问题是因为我有一个表,其中有一个自动创建的timeofinsert属性。我目前正在按插入的时间对所述表进行排序;此字段没有索引。我觉得我可以简单地按id对其排序,而不是按插入时间索引-这样我可以得到快速的结果,而且我不必为多个表列编制索引。我的DB是postgres

我错过了什么?

现在不是了

id保证唯一性。而您的datetime列没有


因此,如果有两行的插入值的时间相同,那么结果集顺序就不能保证。

对于大多数应用程序来说,它应该足够接近。可能存在一些竞争条件,特别是在并行数据库上。这在很大程度上取决于插入时间和id的创建方式,它高度依赖于数据库。@HassanBaig我建议您按插入时间和id的顺序进行排序