为什么列上的函数会阻止索引的使用?

为什么列上的函数会阻止索引的使用?,第1张

为什么列上的函数会阻止索引的使用?

最基本形式的索引只是排序的列数据,因此可以轻松地按某个值查找。例如,一本教科书可以按一定顺序排列页面,但后面的所有术语都有一个索引。如您所见,数据已预先计算/排序并存储在单独的区域中。

当您将函数应用于列并尝试根据输出进行匹配/过滤时,索引不再有用。让我们再次看一下我们的书籍示例,并说我们正在应用的函数与术语相反(因此

reverse('integral')
变为
'largetni'
)。您不会在索引中找到此值,因此您必须将所有术语取整,然后将它们放入函数中,然后再进行比较。全部在查询时。本来我们可以跳过搜索
i
,然后
in
,再
int
等等,因此很容易找到长期如此功能使一切慢得多。

如果您经常使用此功能进行查询,则可以

reverse(term)
提前创建索引以加快查找速度。但是,如果没有明确地这样做,它将总是很慢。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5649746.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存