当主键是复合键时,SQL Server的搜索算法是什么?



我们知道最好的搜索算法是二叉搜索树。考虑一个复合表中的主键。SQL Server使用BST搜索数据?如果是,它如何搜索多列与BST ?如果它不使用BST,它使用什么其他算法?这个算法的时间复杂度是多少?

请分享你知道的一切:)

它使用完全相同的算法,具有完全相同的复杂度。

假设您有一个字段PK,其值为' a ', 'B', 'C'等等-没有问题,对吧?

现在想象一下,这些键是'AA', 'BB', 'CC'等等,没有问题,对吧?这只是一个两个字符的密钥。

从概念上讲,复合PK就像'AA'与'A'之比。如果您的PK跨越值为'A'和'B'的两个1字符列,则可以将您的键与单列值'AB'进行比较。

简单地说,你的键比较现在比较X字段而不是一个。

树搜索依赖于键的抽象概念。该键需要与其他键具有可比性,仅此而已。搜索算法不需要知道键是否由多个字段组成。它只知道键是可比较的。

最新更新