gpt4 book ai didi

sql - 在SQL中按子字符串查找字符串的最快方法?

转载 作者:行者123 更新时间:2023-12-04 02:21:05 25 4
gpt4 key购买 nike

我有2列的大型表格:Id和Title。 Id是bigint,我可以自由选择“标题”列的类型:varchar,char,text等。列标题包含随机文本字符串,例如“abcdefg”,“q”,“allyourbasebelongtous”,最多255个字符。

我的任务是通过给定的子字符串获取字符串。子字符串也具有随机长度,可以是字符串的开头,中间或结尾。最明显的执行方式:

SELECT * FROM t LIKE '%abc%'

我不在乎INSERT,只需要进行快速选择即可。我该怎么做才能尽快执行搜索?

我使用MS SQL Server 2008 R2,据我所知,全文搜索将无用。

最佳答案

如果您想使用比Randy答案更少的空间,并且数据中存在大量重复,则可以创建一个N-Ary树数据结构,其中每个边都是下一个字符,并在数据上悬挂每个字符串和结尾的子字符串。

您按深度优先顺序对节点进行编号。然后,您可以为每个记录创建一个最多包含255行的表,并带有记录的ID和树中与字符串或尾随子字符串匹配的节点ID。然后,当您执行搜索时,会找到代表您要搜索的字符串(以及所有尾随子字符串)的节点ID,并进行范围搜索。

关于sql - 在SQL中按子字符串查找字符串的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6651930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com