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



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

例如:

key
---
air
all
antilope
antivirus
apple

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

key
---
antilope
antivirus

我知道这是可能的,因为您可以执行二叉搜索,询问:给我最小的索引大于an,小于ao

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

select * from my_table where key like 'an%'

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

使用诸如'an%'这样的模式,几乎所有数据库都会在my_table(key)上使用索引。 他们可以这样做,因为模式从常量值开始。

这是使用基于树的搜索来寻找前缀的完全匹配。

一些数据库具有更广泛的索引结构 - 特别是Postgres,并且这些也支持基于文本的搜索。

最新更新