sql server 全文索引和普通索引有什么区别?
2个回答
展开全部
两种索引的功能和结构都是不同的
普通索引的结构主要以B+树和哈希索引为主,用于实现对字段中数据的精确查找,比如查找某个字段值等于给定值的记录,A=10这种查询,因此适合数值型字段和短文本字段
全文索引是用于检索字段中是否包含或不包含指定的关键字,有点像搜索引擎的功能,其内部的索引结构采用的是与搜索引擎相同的倒排索引结构,其原理是对字段中的文本进行分词,然后为每一个出现的单词记录一个索引项,这个索引项中保存了所有出现过该单词的记录的信息,也就是说在索引中找到这个单词后,就知道哪些记录的字段中包含这个单词了。因此适合用大文本字段的查找。
大字段之所以不适合做普通索引,最主要的原因是普通索引对检索条件只能进行精确匹配,而大字段中的文本内容很多,通常也不会在这种字段上执行精确的文本匹配查询,而更多的是基于关键字的全文检索查询,例如你查一篇文章信息,你会只输入一些关键字,而不是把整篇文章输入查询(如果有整篇文章也就不用查询了)。而全文索引正是适合这种查询需求。
普通索引的结构主要以B+树和哈希索引为主,用于实现对字段中数据的精确查找,比如查找某个字段值等于给定值的记录,A=10这种查询,因此适合数值型字段和短文本字段
全文索引是用于检索字段中是否包含或不包含指定的关键字,有点像搜索引擎的功能,其内部的索引结构采用的是与搜索引擎相同的倒排索引结构,其原理是对字段中的文本进行分词,然后为每一个出现的单词记录一个索引项,这个索引项中保存了所有出现过该单词的记录的信息,也就是说在索引中找到这个单词后,就知道哪些记录的字段中包含这个单词了。因此适合用大文本字段的查找。
大字段之所以不适合做普通索引,最主要的原因是普通索引对检索条件只能进行精确匹配,而大字段中的文本内容很多,通常也不会在这种字段上执行精确的文本匹配查询,而更多的是基于关键字的全文检索查询,例如你查一篇文章信息,你会只输入一些关键字,而不是把整篇文章输入查询(如果有整篇文章也就不用查询了)。而全文索引正是适合这种查询需求。
展开全部
你好,大字段不适合做普通索引,是因为索引大型字段会让索引占用太多的存储空间。这是索引使用的基本原则。
区别其实也很简单。A普通索引能有很多个,全文索引只有一个。
B存储时受定义它们所在的数据库的控制普通索引,全文索引存储在文件系统中
c普通索引不分组,全文索引在同一个数据库内分组为一个或多个全文目录
d普通索引当对作为其基础的数据进行插入、更新或删除时,它们会自动更新,全文索引将数据添加到全文索引称为填充,全文索引可通过调度或特定请求来请求,也可以在添加新数据时自动发生
e普通索引使用SQL
Server企业管理器、向导或Transact-SQL语句创建和除去,全文索引使用SQL
Server企业管理器、向导或存储过程创建、管理和除去
希望对你有所帮助
区别其实也很简单。A普通索引能有很多个,全文索引只有一个。
B存储时受定义它们所在的数据库的控制普通索引,全文索引存储在文件系统中
c普通索引不分组,全文索引在同一个数据库内分组为一个或多个全文目录
d普通索引当对作为其基础的数据进行插入、更新或删除时,它们会自动更新,全文索引将数据添加到全文索引称为填充,全文索引可通过调度或特定请求来请求,也可以在添加新数据时自动发生
e普通索引使用SQL
Server企业管理器、向导或Transact-SQL语句创建和除去,全文索引使用SQL
Server企业管理器、向导或存储过程创建、管理和除去
希望对你有所帮助
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询