【发布时间】:2012-09-21 14:02:04
【问题描述】:
我有一个关于如何在 SQL 中搜索特定关键字的快速表列的问题。
我有 3 张桌子。
例子
Table 1 has Makes
MakeID MakeName
Table 2 has Models
ModelID MakeID ModelName
Table 3 has Cars and Relationship to Table 1 and Table 2
CarID MakeID ModelID
这个想法是最终用户将关键字放在搜索字段中,例如“honda”。它应该返回表 3 中 MakeName 和 ModelName 包含单词 honda 的所有汽车。
What I do is I select from Table 3 and join on Table 1 and Table 2 Where clause MakeName or ModelName like '%' + keyword + '%', also tables have indexes.
不确定这是否是最有效的方法。由于表 3 包含 30 万辆汽车,因此搜索所有表需要时间。
有没有办法加快搜索速度?任何改进搜索的想法都受到高度赞赏。也许将部分(仅搜索返回的数据)信息镜像到另一个表并查询它而不是主表?
【问题讨论】:
-
您可以创建这 3 个表的视图
-
嗨哈扎特。我创建了一个视图,它确实有帮助。到目前为止,这对我来说是最好的解决方案。如果你回答我接受它作为正确的答案。谢谢
标签: asp.net sql c#-4.0 entity-framework-4