ORDER BY id 或 date_created 显示最新结果?

Wes*_*rch 5 mysql sql database sql-order-by

我有一个表(实际上有几个),我想首先从最近的条目中获取结果。这是我的ORDER BY条款选项:

  • date_created INT(永远不会改变值)
  • id(当然是INT AUTO_INCREMENT!)

两列应该同样表示插入记录的顺序。我自然会date_created像任何理智的人一样使用这个领域,但我仍然对此感到好奇。

我知道这可能是分裂的头发,但是有什么理由或极端情况为什么我不应该使用该id列?

编辑:我认为这个问题对于我们想要真正代表插入顺序的值是模糊的。感谢大家的所有回答,我将接受最好的回答并继续前进,因为我认为我假设 ids 总是有序的(参见@Wrikken 的评论)使这变得困难。我的直觉是开发人员永远不应该考虑 id,这就是这里的大多数答案所指向的。

dre*_*obb 6

依赖 ID 列进行时间排序并不是一个好主意,因为这不是它的目的。基本上,ID 只是该行的唯一键,仅此而已。使用 ID 可能永远不会导致问题,但没有理由增加假设按 ID 排序将始终成立的复杂性。例如,您将来可能想要删除条目,然后手动插入新条目,或者从其他一些来源中导入过去带有时间戳的条目。如果您没有 date_created 列,那么 ID 将是您唯一的选择,但既然您拥有该列,请使用它,因为它是您的最佳选择。


Nic*_*erg 5

假设 date_created 永远不会被触及(您已经说过它不会),我认为按 ID 列排序在性能方面会更好。据推测,ID 列是您的 pkey,因此已经编入索引。没有理由不使用它进行排序。我知道您应该始终使用日期进行订购,但说实话,在这种情况下我会使用 ID。