【发布时间】:2015-09-17 03:32:42
【问题描述】:
我有一张桌子叫Device:
Device Table
id deviceName genId description overview
1 PV motor 5 motor capacity 5 motor load is good
2 puf pannel 6 puf capacity 2 puf is for small load
3 gd motor 5 motor capacity 7 motor load is very good
4 rg motor 5 capacity is 3 low capacity
现在假设该表有数千条记录,我需要添加对行的搜索,例如 genId=5 and description Like = '%motor%' OR Overview Like='%motor%'
搜索结果将是
1 PV motor 5 motor capacity 5 motor load is good
3 gd motor 5 motor capacity 7 motor load is very good
我需要构建查询,首先从表中搜索 genId 5,然后然后搜索具有类似电机文本的描述和概述。因为如果我的表有 100 条记录并且其中只有 5 条的 genId 设置为 5,那么我的文本搜索查询将在这 5 行而不是 100 行上执行。
我的搜索查询:
Select *
From Device
where (genId=5) And (description Like '%motor%' Or overview Like '%motor%')
谁能帮我创建优化查询?
【问题讨论】:
-
为什么您认为使用单独的临时表分两步进行搜索会更快?
-
@CL。 :like是一个繁重的操作,这里平均可以搜索300-1000字。因此,如果我首先从 1000 行过滤到 20 行(按 genId),那么 Like 查询将仅在 20 行而不是全部 1000 行中执行,如果我错了,请纠正我。
标签: sql sqlite query-optimization