我们知道最好的搜索算法是二叉搜索树。考虑一个复合表中的主键。SQL Server 是否BST
用于数据搜索?如果是,它如何搜索多个列BST
?如果它不使用它使用BST
什么其他算法剂量?该算法的时间复杂度是多少?
请分享你知道的任何东西:)
它使用完全相同的算法,具有完全相同的复杂性。
想象一下,您有一个字段 PK,其值为“A”、“B”、“C”等等——没问题,对吧?
现在想象这些键是“AA”、“BB”、“CC”等等——没问题,对吧?这只是一个两个字符的键。
与“A”相比,复合 PK 就像“AA” - 从概念上讲。如果您的 PK 跨越两个值为“A”和“B”的 1 字符列,则可以将您的键与单列值“AB”进行比较。
简单地说,您的关键比较现在比较 X 字段,而不仅仅是一个。
树搜索依赖于键的抽象概念。密钥需要与其他密钥具有可比性,仅此而已。搜索算法不需要知道键是否由多个字段组成。它只知道密钥是可比的。