从数据库中的表中选择行的最快方法(Microsoft SQL Server)

时间:2013-02-19 06:43:02

标签: performance sql-server-2008 select

我有一个巨大的表,其中包含一个int PRIMARY KEY IDENTITY列。

我想使用该主键进行SELECT查询是数据库查找表中行的最快方法不是吗?

如果这是真的,我还有一个问题。 该查询是否与按键调用字典一样快,或者数据库仍然必须从头开始读取所有行(主键列),直到找到行本身为止?

提前致谢^^

2 个答案:

答案 0 :(得分:1)

使用主键显然是访问特定行的最快方法。

如果您想了解它的工作原理,您必须了解索引的工作原理。

通常情况就是这样:

假设您有一个表格t1(col1,col2...col10),并且您在col1上有一个索引。 col1上的索引意味着您有一些包含对(col1, rec_id)的数据结构 并且rec_id允许使用适当的col1直接访问行。 数据结构按col1排序,因此可以col1进行有效搜索。

答案 1 :(得分:0)

我认为在词典中搜索每个词典的搜索算法应该更像二进制搜索类型。

当你在表中声明一个列作为主键时,那么该列被索引,因此它应该基于散列原理工作,所以搜索肯定不是你提到的一行一行。

最后,是的,它是常见且快速的方式,但您应该选择sql查询中所需的列数和行数。避免每次选择调用获取大量行。