使用索引排序
回答
是的,由于聚簇索引,数据显示为预排序。聚集索引意味着这些行按照索引的顺序进行物理排列,这在大多数情况下(并非全部)都是如何检索的。
如果没有聚集的索引,那么将按照它们插入的顺序检索行。
不,这不依赖于此。如果您决定执行
JOIN
,DISTINCT
或对查询进行任何其他更改,则可以轻松地拆分排序顺序。另一方面,如果您使用的是ORDER BY
,并且SQL Server知道数据已经按照该顺序排列,那么它将优化冗余排序,因此无需花费任何代价。因此,总是
ORDER BY
,即使它看起来你不需要它。
有关MSDN上聚簇索引的文章 http://msdn.microsoft.com/en-us/library/aa933131%28SQL.80%29.aspx – keith 2010-01-19 04:51:29
如果你需要一个特定的排序顺序最好的做法是使用ORDER BY
子句指定。
尽管没有ORDER BY
子句,但几乎所有的数据库实现都使用了我曾经使用的数据库实现,但它的行为是数据库如何工作的副作用。事实是,数据库(同样是我工作过的)不能保证排序的顺序,除非你指定它,所以没有指定它,你会受到数据库实现和任何副作用的制约。基本上,如果您需要以完全可预测的方式返回记录,则应指定它。
我的查询返回的查询结果似乎排序,虽然没有可用的语句顺序。
这是因为数据是基于插入数据的顺序返回的。为了保证订单始终保持一致,您需要定义一个ORDER BY
条款。
索引可以加快查询排序的速度,但如果没有使用带索引的列的ORDER BY子句,则索引不会产生影响。
除非您使用ORDER BY,否则不能依赖您获得结果的顺序。我猜这取决于你的数据库,但是当你需要的时候指定一个订单总是最佳实践。
无论其他细节如何,只要您关心SQL查询的结果顺序,唯一可以做的就是包含ORDER BY子句以确保您获得所需的订单。作为替代方法,您可以(当然)随机检索并稍后进行排序 - 但使用SQL来完成这项工作通常是一个更好的主意。主要的例外是如果你需要做一些事情来填充列表,并希望用户能够根据不同的列重新排序。在这种情况下,无论如何你都要在客户端进行排序(可能是JS),所以你不妨使用它。
数据可能显示为已排序,但您不能依赖该数据。假设你在RAM中有一些你需要的数据,而剩下的数据仍然在磁盘上。系统可以并行并开始返回内存中的数据,而其余部分则从磁盘中提取并返回。你根本无法依靠它,如果你需要订购,绝对应该订购你的数据。
- 1. 排序索引使用
- 2. 使用索引进行数字排序
- 3. Mongo使用索引与排序
- 4. MySQL的使用索引优化排序
- 5. 使用合并对数组进行排序索引排序
- 6. 使用C++排序索引进行排序
- 7. mongodb索引查找索引排序
- 8. 在使用lucene 4.0进行索引编排时进行排序
- 9. 排序索引元素
- 10. 排序按索引的Java
- 11. 在索引列上排序
- 12. JavaScript数组排序()索引
- 13. MySql索引排序和Where
- 14. QTableWidget原始索引排序
- 15. 索引排序清单
- 16. 排序多个索引
- 17. 排序列上的索引
- 18. 排序“索引”阵列
- 19. Node + Mongo:在排序中利用索引
- 20. MongoDB索引用于查找和排序
- 21. 降序排序顺序索引
- 22. 排序后检索索引值Enum按字母顺序排列
- 23. 使用python对基于索引和非索引列的表值进行排序
- 24. 使用索引对数组进行排序会导致索引太多
- 25. SQL索引标识列排序顺序
- 26. 多索引熊猫DataFrame顺序排序
- 27. 如何使用Pandas对数据框索引进行重新排序/排序?
- 28. 按索引对PagedCollectionView进行排序(使用Silverlight Datagrid)
- 29. 使用pandas返回排序行的索引值?
- 30. 使用jquery对基于索引的div进行排序
忘了提及iam使用asp.net应用程序访问数据 – Prady 2010-01-19 04:41:48