我需要创建一个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中使用。