我有一个非常大的表,上面只有 6 个字段。行数大约为 2000 万。我有一个包含一个整数字段的聚集索引。但是,有一个我经常需要搜索的 nvarchar(max) 字段(不一定是唯一的,但永远不会为空),问题是我无法在其上建立索引,因为 SQL 对索引大小有最大限制。我有什么解决这个问题的选择?我对 SQL 不太熟悉,所以请避免使用技术术语。
问问题
1401 次
2 回答
2
听起来您需要使用全文搜索:
SQL Server 中的全文搜索允许用户和应用程序对 SQL Server 表中基于字符的数据运行全文查询。
...
这些列可以具有以下任何数据类型:
char
,varchar
,nchar
,nvarchar
,text
,ntext
,image
,xml
, 或varbinary(max)
您不仅需要全文索引才能将索引添加到大文本列……而且如果您要搜索这一大块文本以查找部分匹配项,例如搜索特定单词或在大文档中间的短语中,普通索引将毫无用处,因为WHERE TextField LIKE '%Specific word or phrase%'
搜索中的前导通配符(即 )会阻止使用非全文索引。
于 2013-02-08T19:01:46.823 回答
0
没有索引的搜索效率不高。
char, varchar, nvarcahr
可以对列进行全文搜索。但是,如果您创建全文索引,它总是会更好。
它在某些列上没有索引的原因是允许全文搜索的扩展功能:语义、单词距离、停用词等。
于 2013-06-25T21:48:29.020 回答