我对通过作为表中主键的自动编号对 select 语句中的结果进行排序很感兴趣。
最终,我希望从表中选择最近的记录,并注意到使用时的执行时间ORDER BY DateTime DESC
比使用时长得多ORDER BY Id DESC
。
假设最高编号的自动编号/主键将是最后一条记录是不好的做法吗?
谢谢加雷斯
我对通过作为表中主键的自动编号对 select 语句中的结果进行排序很感兴趣。
最终,我希望从表中选择最近的记录,并注意到使用时的执行时间ORDER BY DateTime DESC
比使用时长得多ORDER BY Id DESC
。
假设最高编号的自动编号/主键将是最后一条记录是不好的做法吗?
谢谢加雷斯
假设最高编号的自动编号/主键将是最后一条记录是不好的做法吗?
如果您的意思是最后插入的记录,那么这是一个不错的方法 -autonumber
永远不会“倒退”(但可以如下所述变为负数)。
但是,有一些边缘情况您没有指定可能会改变正确答案:
DateTime
值怎么办?他们会被认为是“最后一个”记录吗?DateTime
(例如从外部源导入或合并两个数据集。编辑
根据评论和投票,我正在修改我的答案以同意自动增量字段不是确定“最后”记录的最佳解决方案。有太多情况下推荐它可能是错误的。
总而言之,如果您对“最后一个”的定义是“DateTime
价值最高的记录”——那就用它吧!
您可以添加一个索引,DateTime
该索引将显着加快对该列的查询。