我有一个 MVC 自动完成功能,它将搜索输入到文本框中的任意数量的字符串以查找地址。
例如,如果他们输入 John Doe New York,我的查询将对客户表中的所有列(first、last、address、city、state、zip)执行 LIKE 以查看它是否与该术语匹配。然后将移动到下一个搜索词并执行相同的操作。
我的问题是,最好是点击 Sql Server DB 4 次(在本例中)为每个字段的每个搜索词执行 LIKE,还是返回大约 10,000 行并将它们作为列表在内存中搜索会更好?
第一个在搜索表时需要更多的 DB I/O,但第二个需要更多的数据进入应用程序。
客户表中的所有数据都没有全文搜索索引,并且充其量在各个列上都有一个 SQL 索引。