SQL Server 全文索引的硬伤

全文引擎使用全文索引中的信息来编译可快速搜索表中的特定词或词组的全文查询

全文索引优点:

  1.正确的索引会大大提高数据查询、解决海量数据模糊查询的好方法。

       2.一个表只能建立一个全文索引(但可以对多个字段)。

全文索引缺点:

1、存储空间,每个索引都要空间存储
2、如果非聚集索引很多,一旦聚集索引改变,那么所有非聚集索引都会跟着变。
3、过多索引会导致优化器优化过程需要评估的组合增多。
4、每个索引都有统计信息,索引越多统计信息越多。
5、更新开销,一旦一个数据改变,并且改变的列比较多,可能会引起好几个索引跟着改变。

全文索引需要注意:

  1. 表中必须有一个唯一性索引,当并不需要是主键。
  2. 一个表中只能有一个全文索引。
  3. 你需要告诉你的脚本你想使用全文索引,如何告诉呢?那就是使用关键字:CONTAINS、FULLTEXT、CONTAINSTABLE、FREETEXTTABLE。例如:SELECT * FROM table_name WHERE CONTAINS(fullText_column,'"search contents*"');需要记住CONTAINS等在不同场景、需求下的用法。
  4. 如果定义了变量作为传入值,那么就要注意是否需要在set字符的时候的前面加入N标识。
  5. 要对表设置全文索引,那就得先对数据库设置了全文索引,这样点击表右键的时候,“全文索引”选项才能用。
  6. 脚本在查找的时候是不区分大小写的。解决办法:SELECT * FROM Table_name WHERE Column_name='A' COLLATE Chinese_PRC_CS_AI;或者SELECT * FROM Table_name WHERE ASCII(Column_name) = ASCII('A');
坚持就是力量 量变造就质变
原文地址:https://www.cnblogs.com/songxm/p/14676665.html