Php MYSQL按日期排序还是按主键排序?

Php MYSQL按日期排序还是按主键排序?,php,mysql,Php,Mysql,我有一个带有自动递增主键列和日期时间列的表。我想返回按创建日期排序的行 按日期或主键订购是否重要?我认为它是一个更快的主键,而不是日期格式0000-00-00 00:00:00或时间戳。新记录将具有更大的主键。然而,每个人都是按日期字段订购的 按日期字段排序,但请确保在日期字段上放置索引 日期字段是一个二进制字段,它与主键一样快。(一个日期是3字节,而一个整数主键是4。)它不使用字符串对它进行排序,就像您假设的那样 更重要的是,它表明了您的意图(加上主键可能会环绕) 此外,如果使用innodb,

我有一个带有自动递增主键列和日期时间列的表。我想返回按创建日期排序的行


按日期或主键订购是否重要?我认为它是一个更快的主键,而不是日期格式
0000-00-00 00:00:00
或时间戳。新记录将具有更大的主键。然而,每个人都是按日期字段订购的

按日期字段排序,但请确保在日期字段上放置索引

日期字段是一个二进制字段,它与主键一样快。(一个日期是3字节,而一个整数主键是4。)它不使用字符串对它进行排序,就像您假设的那样

更重要的是,它表明了您的意图(加上主键可能会环绕)

此外,如果使用innodb,主键完全可能不按顺序排列,这取决于事务的交叉方式


此外,如果您擅长阅读查询计划,请将日期列添加到用于查询的同一索引的末尾。然而,这只适用于特定的情况,所以只有当你知道它会有帮助时才这样做。i、 e.不要盲目地这样做。

你说的“每个人按日期排序”字段是什么意思?我的意思是在大多数查询中,程序员按日期排序,但主键也记录时间。datetime字段是否保存插入记录时的当前日期和时间???@Sabin创建记录时。datetime和主键一样保持不变。因此,我认为无论您使用什么排序方法,如果您为date字段编制索引,它也会运行得更快,这并不重要。我个人使用主键自动递增字段进行排序。编辑:如果同时插入多行,则两条记录可能具有相同的日期时间值。。但是主键不同,所以最好使用自动递增列进行排序。即使日期字段没有索引,排序速度是否也一样快?@bfavaretto否。您必须对其进行索引。最快的方法是按您已经用于搜索的索引排序。因此,请检查您的查询计划,然后将日期字段添加到搜索索引中。(做好这件事可能很棘手,而且你必须对数据库有很好的了解。大多数情况下,只需在日期字段上添加一个索引,然后就到此为止。)@Ariel,这正是我要注意的。我认为你应该在回答中说明这一点。