我有一个包含几列的数据库表;其中大多数是 VARCHAR(x) 类型列,其中一些列上有索引,以便我可以快速搜索其中的数据。
但是,其中一列是 TEXT
列,因为它包含大量数据(23 kb 纯 ascii 文本等)。我希望能够在该列中进行搜索(... WHERE col1 LIKE '%search string%'...
),但目前执行查询需要很长时间。我知道由于此列搜索,查询很慢,因为当我从 WHERE
子句中删除该条件时,查询会立即完成(我会考虑)。
我无法在此列上添加索引,因为在 SQL Server Management Studio 的索引生成器/向导中,该列的选项呈灰色。
我可以选择哪些选项来加快该列中的查询搜索速度?
感谢您的宝贵时间...
更新
好的,所以我研究了全文搜索并做了所有这些事情,现在我想运行查询。然而,当使用“contains”时,它只接受一个单词;如果我需要一个准确的短语怎么办? ... WHERE CONTAINS (col1, '搜索短语') ...
抛出错误。
抱歉,我是 SQL Server 新手
更新2 抱歉,刚刚想通了;使用多个“包含”子句,而不是一个包含多个单词的子句。实际上,这仍然没有得到我想要的(确切的短语),它只是确保短语中的所有单词都存在。
最佳答案
搜索文本字段总是很慢。给予Full Text Search尝试一下,看看这是否更适合您。
关于sql-server - SQL服务器; TEXT 列上的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/830241/