Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VarChar(50)上的SQL Server索引-这是全文吗?还是怎样_Sql_Sql Server_Tsql_Sql Server 2008_Full Text Search - Fatal编程技术网

VarChar(50)上的SQL Server索引-这是全文吗?还是怎样

VarChar(50)上的SQL Server索引-这是全文吗?还是怎样,sql,sql-server,tsql,sql-server-2008,full-text-search,Sql,Sql Server,Tsql,Sql Server 2008,Full Text Search,当我在SQLServer2008DB中的VarChar列上创建索引时,会发生什么。这显然是一个文本列 它是自动全文索引还是创建其他类型的索引?否您必须为该类型的搜索创建全文索引列。它不是用普通索引自动创建的。全文索引不同于普通索引。考虑这两个看似等价的子句: WHERE [mycolumn] LIKE '%' + @MyValue + '%' WHERE CONTAINS([mycolumn], @MyValue) 前者不会使用任何索引,即使是你在问题中提到的那种普通索引。它不被视为。后者特

当我在SQLServer2008DB中的VarChar列上创建索引时,会发生什么。这显然是一个文本列


它是自动全文索引还是创建其他类型的索引?

否您必须为该类型的搜索创建全文索引列。它不是用普通索引自动创建的。

全文索引不同于普通索引。考虑这两个看似等价的子句:

WHERE [mycolumn] LIKE '%' + @MyValue + '%'

WHERE CONTAINS([mycolumn], @MyValue)
前者不会使用任何索引,即使是你在问题中提到的那种普通索引。它不被视为。后者特别告诉服务器使用全文索引

另一方面,这将适用于普通索引,但会忽略任何可用的全文索引:

WHERE [mycolumn] LIKE @MyValue + '%'
正常索引之所以有效,是因为它们是有序的。在查找索引中的值时,可以使用二进制搜索、b*-树或类似算法更快地查找或拒绝匹配,并且在比较连接或范围时,服务器可以“漫游”索引以有效地检查大量值


全文索引不能仅仅被排序,因为您必须能够像在开始一样快地在内容的中间搜索。因此,它们很重要。

那么正常指数在做什么呢?