sqlite 索引的排序顺序

Qia*_*iao 2 sqlite sorting indexing

为 sqlite 创建索引时有排序顺序。

https://sqlite.org/lang_createindex.html

每个列名或表达式都可以跟在“ASC”或“DESC”关键字之一以指示排序顺序。

因此,创建索引时有三个选项:no-sort、ASC、DESC。关于我应该如何使用它们的信息在哪里?我找不到它。

我想,如果我在查询中使用 ASC 或 DESC,我应该将它们添加到 index.html 中。但是,如果它们都在不同的查询中,我应该同时添加它们吗?或者我应该不设置排序顺序,它会自行选择?

它的一般规则是什么?

das*_*asl 7

SQLite 可以双向扫描索引。对于单列上的索引,这意味着它可用于同时排序ASCDESC排序。

参考

从上到下(如果使用“ORDER BY Fruit DESC”,则从下到上)扫描 Idx1 索引,以便按水果顺序查找每个项目的 rowid。

但是对于不止一列的索引,人们可能希望对数据进行排序的方向不止两个。例如,在两列索引上,人们可能希望通过ASC, ASC;进行排序。ASC, DESC; DESC, DESC; 或DESC, ASC订购。

如果索引是按ASC, ASC顺序创建的,那么按ASC, ASCor排序DESC, DESC就能充分利用索引。但是仅使用索引是不可能按ASC, DESC和排序的DESC, ASC。这就是可以指定索引顺序的原因。

欲了解更多信息:https : //use-the-index-luke.com/sql/sorting-grouping/order-by-asc-desc-nulls-last


CL.*_*CL. 0

SQLite 可以双向单步执行索引,因此一般来说,索引顺序并不重要。

  • 那为什么会在这里呢? (4认同)