我有一个包含几列的数据库表;他们中的大多数是VARCHAR(x)
类型列,其中一些列上有索引,以便我可以快速搜索其中的数据。
然而,其中一列是TEXT
列,因为它包含大量数据(23 kb 纯 ascii 文本等)。我希望能够在该栏中搜索(...WHERE col1 LIKE '%search string%'...
),但目前执行查询需要很长时间。我知道由于此列搜索,查询很慢,因为当我从WHERE
子句查询立即完成(我会考虑)。
我无法在此列上添加索引,因为在 SQL Server Management Studio 的索引生成器/向导中该列的选项呈灰色。
为了加快该列中的查询搜索速度,我有哪些选择?
谢谢你的时间...
Update
好的,所以我研究了全文搜索并做了所有这些事情,现在我想运行查询。然而,当使用“contains”时,它只接受一个单词;如果我需要一个准确的短语怎么办?... WHERE CONTAINS (col1, 'search phrase') ...
抛出错误。
抱歉,我是 SQL Server 新手
Update 2抱歉,刚刚想通了;使用多个“包含”子句,而不是一个包含多个单词的子句。实际上,这仍然没有得到我想要的(确切的短语),它只是确保短语中的所有单词都存在。
搜索 TEXT 字段总是相当慢。给全文搜索尝试一下,看看这是否更适合您。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)