1

这个查询:

SELECT * FROM table WHERE field = 'EN'

我想以相反(desc)的顺序修改选择,将其物理插入到数据库中,而不使用任何索引(例如:DESC NO-INDEX)?

是否可以?

4

3 回答 3

1

除非您有一个反映物理插入顺序的列,否则您不能(使用或不使用索引)。

您只能按查询包含的数据对查询进行排序。如果您没有存储插入时间戳或某种形式的 id,则无法生成所需的订单。

于 2012-09-16T11:10:16.950 回答
1

MyISAM 使用插入顺序存储项目,并用新的行填充已删除的行(您可以在 select * from... without order 中看到它)。默认情况下,插入顺序未保存在数据库中(如果您想使用自动增量字段来存储此顺序,您可以)。

INNODB 按 PK 存储行,因此select ... from ... order by PK desc无论何时插入行,您都可以。

于 2012-09-16T12:02:51.140 回答
0

由于数据库中的各种空间重用策略,这实际上是不可能的。可能最接近您的是读取没有指定任何顺序的记录,然后以相反的方向遍历您的结果集。

于 2012-09-16T11:10:56.847 回答