哪些数据库支持对数前缀搜索?

时间:2019-12-16 15:27:33

标签: sql algorithm search full-text-search logarithm

哪些数据库具有对数方法来提取字符串的所有前缀?

例如:

key
---
air
all
antilope
antivirus
apple

当我查询an的前缀时,它将返回

key
---
antilope
antivirus

我知道这是有可能的,因为您可以执行一个二进制搜索,询问:给我最小的索引,该索引的大小应大于an,而较小的索引应小于ao

在大多数数据库中执行此操作的简单方法是使用类似的查询:

select * from my_table where key like 'an%'

我的理解是,它正在执行线性搜索,因此对我而言效率不高。

1 个答案:

答案 0 :(得分:1)

使用'an%'之类的模式,几乎所有数据库都将使用my_table(key)上的索引。他们之所以可以这样做,是因为模式以恒定值开头。

这是使用基于树的搜索来寻找前缀上的精确匹配项。

某些数据库具有更广泛的索引结构,尤其是Postgres,它们还支持基于文本的搜索。