高手请进:text字段不能做索引,有无其他方法?

时间:2022-12-02 19:15:41
表:MyTable
字段1:ID ----- int  类型 主键
字段2:Content--ntext 类型
记录总量:20万条
需求:查找Content中包含某字符串strSearch的记录集合。
问题:由于SQLServer不支持ntext做索引或者主键,那么有没有办法使该查找操作加快?谢谢为盼。

7 个解决方案

#1


不要设置ntext.改为大一点的nvarchar.

#2


也可以把关键字另外存到一个字段,不过这样就麻烦点,需要多维护一下关键字,不过这是比较常用的做法。

#3


由于Content字段中有存在上万字的记录,顾难以设置较大的nvarchar,感谢两位,希望高手继续给以解答。

#4


如果content字段内容很多,即使加了索引,速度也快不到哪儿的。

#5


CrazyFor(Fan) :我也试验了一下您提出的按照分页来做以加快速度,虽然有所提高,但速度还是没有明显改善,对于这种需求,有什么好的建议吗?我想控制在10秒以内,但目前一般都在20-30秒,有点不爽。

#6


text and ntext当然用Full-Text Indexing了

#7


然后用下面的语句查询
============================================
SELECT ID,Content
FROM MyTable
WHERE CONTAINS(Content, @strSearch)
============================================

#1


不要设置ntext.改为大一点的nvarchar.

#2


也可以把关键字另外存到一个字段,不过这样就麻烦点,需要多维护一下关键字,不过这是比较常用的做法。

#3


由于Content字段中有存在上万字的记录,顾难以设置较大的nvarchar,感谢两位,希望高手继续给以解答。

#4


如果content字段内容很多,即使加了索引,速度也快不到哪儿的。

#5


CrazyFor(Fan) :我也试验了一下您提出的按照分页来做以加快速度,虽然有所提高,但速度还是没有明显改善,对于这种需求,有什么好的建议吗?我想控制在10秒以内,但目前一般都在20-30秒,有点不爽。

#6


text and ntext当然用Full-Text Indexing了

#7


然后用下面的语句查询
============================================
SELECT ID,Content
FROM MyTable
WHERE CONTAINS(Content, @strSearch)
============================================