我有一个包含自动增量主键列和日期时间列的表。我想返回按创建日期排序的行。
如果按日期或主键订购,这有关系吗?我想通过主键与0000-00-00 00:00:00
的日期格式或时间戳相比,它更快。新记录将具有更大的主键。然而每个人都按日期字段排序。
答案 0 :(得分:5)
按日期字段排序,但请务必在日期字段上添加索引。
日期字段是二进制字段,它与主键一样快。 (日期是3个字节,而不是整数主键,它是4.)它不会像你想象的那样使用字符串对它进行排序。
更重要的是,它表明了你的意图,(加上主键可以包裹)。
此外,如果您使用innodb,主键完全有可能不按顺序排列,具体取决于交易的交错方式。
此外,如果您擅长阅读查询计划,请将日期列添加到用于查询的同一索引的末尾。但是,这仅适用于特定情况,因此只有在您知道它有用时才会这样做。即不要盲目地做。