如何创建一个主键按DESC排序的MySQL表,并在插入新行后保持这种方式


How to Create a MySQL Table with the Primary Key sorted by DESC and keep it that way after INSERTing new rows?

我需要创建一个InnoDB表,我将使用它来添加数据并不断获取最近的添加到其中的10行。为了避免必须使用每个 SELECT查询来执行ORDER BY以获得最后10行,我想让表本身按DESC顺序由Primary Key排序,以便我可以完全跳过ORDER BY,只执行SELECT ... LIMIT 10,这应该自动将最近的10行添加到表中。

我该怎么做呢?它是否像将ORDER BY [PRIMARYKEY] DESC添加到CREATE TABLE查询一样简单?表将继续INSERT新行之后按DESC顺序排序吗?

RDBMS从不对其管理的任何表中的行顺序提供任何保证。获得特定订单的唯一方法是提出要求。对于MySQL来说,当主键处于自动增量模式时,行会按升序按主键排序,但这并不是一个保证的属性。

在查询中使用ORDER BY以获得所需的结果。

另一方面,如果主键类型是BTREE(这是大多数引擎的默认值),排序将更快。

排序方向尚未在MySQL 5.5中使用。