Sql 按日期时间字段描述的订单还是按主键描述的订单?
这应该是一个相当常规的操作:当从DB中的表中检索记录时,我需要按创建日期和时间的降序对它们进行排序。但如果我使用自动递增键,我也可以按键值降序排序 我的问题是:哪一个更好Sql 按日期时间字段描述的订单还是按主键描述的订单?,sql,database,postgresql,database-performance,Sql,Database,Postgresql,Database Performance,这应该是一个相当常规的操作:当从DB中的表中检索记录时,我需要按创建日期和时间的降序对它们进行排序。但如果我使用自动递增键,我也可以按键值降序排序 我的问题是:哪一个更好 就性能而言,我知道主键和数据时间字段使用不同类型的指示符,哪一种更有效 它们总是返回相同的结果吗?当达到最大值时,自动递增关键点是否环绕 我认为您应该清楚地识别已排序的列。如果没有,则如果更新一行数据,则可以更改结果顺序PostgreSQL中没有自动增量字段。我想你是指串行,它只是一个带有默认值的整数?还有,是什么让你认为他们
我认为您应该清楚地识别已排序的列。如果没有,则如果更新一行数据,则可以更改结果顺序PostgreSQL中没有
自动增量
字段。我想你是指串行
,它只是一个带有默认值的整数
?还有,是什么让你认为他们使用了不同类型的索引?两者都只是b树索引。如果它是一个主键
,那么它将是一个唯一的
索引,但它们在结构上是相同的。@CraigRinger串行键环绕吗?这是我需要担心的事情吗?它们不会缠绕在一起。但是,不能保证基于时间戳和生成的键的行顺序是相同的,特别是如果您使用当前时间戳
而不是时钟时间戳
。如果要根据降序创建时间排序,请根据降序创建时间排序,而不是按键排序。