Search ms sql按nvarchar字段搜索
我使用的是MS SQl 2012,有一个简单的表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.那个全名还没有任何索引 什么样的搜索方式最好?我应该添加哪些索引?如果不是只有英文单词,我可以使用全文搜索吗 上述查询
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)似乎真的很适合这样做。您可以将全名拆分为单独的名称,并将它们分别添加到链接到主表的辅助表中。