【发布时间】:2013-10-31 22:34:19
【问题描述】:
我正在使用 MS SQl 2012 并且有简单的表格
id (int) - primary key
fullname (nvarchar(500)
age (int)
…
在超过 1500 万条记录的表中,我需要进行简单的搜索,例如
select * from Customers where full name like '%sometext%'
详情: 1. 字数可以少 2. 使用多种语言 3. 该全名还没有任何索引
这样的搜索最好的方法是什么?我应该添加哪些索引?如果不仅有英文单词,我可以使用全文搜索吗?
【问题讨论】:
-
普通索引无助于这种查询。您需要 SQL 全文搜索或像 Apache Lucene.net 这样的单独工具。
-
转念一想,这个栏目是一个人的全名吗?
nvarchar(500)似乎真的很重要。您可以将全名拆分为单独的名称,并将它们分别添加到链接到主表的辅助表中。
标签: search sql-server-2012 query-optimization