2

我有一个非常大的表,上面只有 6 个字段。行数大约为 2000 万。我有一个包含一个整数字段的聚集索引。但是,有一个我经常需要搜索的 nvarchar(max) 字段(不一定是唯一的,但永远不会为空),问题是我无法在其上建立索引,因为 SQL 对索引大小有最大限制。我有什么解决这个问题的选择?我对 SQL 不太熟悉,所以请避免使用技术术语。

4

2 回答 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 回答