【发布时间】:2015-11-11 03:44:03
【问题描述】:
想象一个具有time_of_insert 属性的数据库表,该属性由每次INSERT 的当前时间自动填充(例如,在Django 模型的示例中,该属性具有auto_now_add=True)。
在这种情况下,按time_of_insert 对所述表进行排序是否等同于按每一行的ID(主键)对其进行排序?
背景:我问是因为我有一个表,其中有一个自动创建的time_of_insert 属性。我目前正在按time_of_insert 对上述表格进行排序;此字段未编入索引。我觉得我可以简单地按id 对其进行排序,而不是对time_of_insert 进行索引 - 这样我可以获得快速的结果,并且我不必承担索引另一个表列的开销。我的数据库是 postgres。
我错过了什么?
【问题讨论】:
-
对于大多数应用程序来说应该足够接近。可能存在一些竞争条件,尤其是在并行数据库上。这在很大程度上取决于如何创建插入时间和 id,这高度依赖于数据库。
标签: database postgresql indexing query-optimization