在SQL中使用索引和使用ORDER BY子句有什么区别?
根据我的理解,索引以有序的方式排列指定的列,以帮助查询引擎快速查看表(从而防止表扫描)。
我的问题 - 为什么查询引擎只能使用ORDER BY
来提高效果?
谢谢!
答案 0 :(得分:0)
您将标记设置为sql-server-2008,但该问题与SQL Server无关。此问题将适用于所有数据库。 来自维基百科:
中的相关主题索引是一些存储引擎用于改进的技术 数据库性能。 许多类型的索引共享共同点 它们减少了在运行时检查每个条目的需要的属性 一个问题。在大型数据库中,这可以减少订单的查询时间/成本 大小。最简单的索引形式是值的排序列表 可以使用二进制搜索搜索,该搜索具有对条目位置的相邻引用,类似于书籍背面的索引。相同的数据可以有多个索引(员工数据库可以按姓氏和雇用日期编制索引)。
在SQL世界中,顺序不是一组数据的固有属性。 因此,您的RDBMS无法保证您的数据会来 除非你,否则按照一定的顺序 - 或者甚至以一致的顺序 - 返回 使用ORDER BY子句查询数据。
要回答为什么索引是必要的?