当前位置: 代码迷 >> ASP.NET >> 全文索引和普通索引一起作为查询条件的效率有关问题
  详细解决方案

全文索引和普通索引一起作为查询条件的效率有关问题

热度:1381   发布时间:2013-02-25 00:00:00.0
全文索引和普通索引一起作为查询条件的效率问题 - MS-SQL Server / 新技术前沿
全文索引和普通索引一起作为查询条件的效率会有多高?因为普通索引是数据库来操作,全文索引则是search服务来操作,结合起来能有效率不?举个例子来说,select   id,title,content   where   id   >   3000   and   contains(title, '你好吗? '),id是主键,如果将contains改为like的方式的话,应该会在id为3000以内的记录集合里做like,那么用contains也会这样不?

------解决方案--------------------------------------------------------
contains 是查询的索引肯定没有like 查询的全
------解决方案--------------------------------------------------------
全文索引每次都需要填充,而且有一部分的分词功能,like不能分词,数据量如果不是很大,可以不考虑用全文索引
------解决方案--------------------------------------------------------
不会的

contains的全文索引模式是查询磁盘上的索引目录文件(索引文件理论上是倒排索引机制),因此这个搜索查询不会跟表的索引直接扯上关系的。分2步骤查询出结果再hash主键数据而获得数据

至于用like在某种程度上可能会查询快些,那也是之前的索引使得查询数据内容很少。

但是个人还是不建议用like,那玩意实在太损耗SQL SERVER的查询性能了