Search ms sql按nvarchar字段搜索

Search ms sql按nvarchar字段搜索,search,sql-server-2012,query-optimization,Search,Sql Server 2012,Query Optimization,我使用的是MS SQl 2012,有一个简单的表 id (int) - primary key fullname (nvarchar(500) age (int) … 在表中有超过1500万条记录,我需要像 select * from Customers where full name like '%sometext%' 详情: 1.它可以有几个字 2.有很多种语言 3.那个全名还没有任何索引 什么样的搜索方式最好?我应该添加哪些索引?如果不是只有英文单词,我可以使用全文搜索吗 上述查询

我使用的是MS SQl 2012,有一个简单的表

id (int) - primary key
fullname (nvarchar(500) 
age (int)
…
在表中有超过1500万条记录,我需要像

select * from Customers where full name like '%sometext%' 
详情: 1.它可以有几个字 2.有很多种语言 3.那个全名还没有任何索引

什么样的搜索方式最好?我应该添加哪些索引?如果不是只有英文单词,我可以使用全文搜索吗

上述查询不符合要求,因此您的
全名
列上没有索引会有所帮助。您需要先对数据进行重组或筛选(年龄=30岁),然后扫描全名


另一个选择是引入一种文本搜索技术,如@afrancis所示。

普通索引对这种查询没有帮助。您需要SQL全文搜索或像ApacheLucene.net这样的单独工具。仔细想想,该列是一个人的全名吗<代码>nvarchar(500)似乎真的很适合这样做。您可以将全名拆分为单独的名称,并将它们分别添加到链接到主表的辅助表中。