需要过滤结果优化查询

阿米特·库玛·卡纳吉亚(Amit Kumar Kannaujiya)

我有一张桌子叫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然后它搜索包含诸如motor之类的文本的描述和概述由于如果我的表有100条记录,并且只有5条记录的genId设置为5,那么我的文本搜索查询将在这5行而不是100行上执行。

我的搜索查询:

Select * 
From Device 
where (genId=5) And (description Like '%motor%' Or overview Like '%motor%') 

谁能帮助我创建优化的查询?

CL。

您的查询已经尽可能优化。

LIKE本身并不慢;缓慢的是从磁盘加载所有表行,而LIKE通常需要这样做,因为它无法使用索引优化其查找。

但是,当genId上没有索引时无论如何都需要加载所有行以检查这些值,因此插入多余的步骤将是不必要的:

> EXPLAIN QUERY PLAN Select * From Device where (genId=5) And (description Like '%motor%' Or overview Like '%motor%');
0|0|0|SCAN TABLE Device

如果,另一方面,在一个索引genId列,那么你不需要做任何手动优化,因为数据库会自动查找匹配的genId行索引,然后检查LIKE MATHES,只有对那些:

> CREATE INDEX genId_index ON Device(genId);
> EXPLAIN QUERY PLAN Select * From Device where (genId=5) And (description Like '%motor%' Or overview Like '%motor%');
0|0|0|SEARCH TABLE Device USING INDEX genId_index (genId=?)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

mysql查询需要优化

来自分类Dev

需要查询优化

来自分类Dev

需要优化TIMESTAMPDIFF查询

来自分类Dev

需要一个可以过滤结果的MySQL查询

来自分类Dev

elasticsearch得到太多结果,需要帮助过滤查询

来自分类Dev

在加入非常大的表进行优化之前,我是否需要过滤所有子查询

来自分类Dev

Graphql过滤查询结果

来自分类Dev

过滤查询结果

来自分类Dev

MySQL查询过滤结果

来自分类Dev

需要MySQL查询优化帮助

来自分类Dev

需要帮助优化SQL查询

来自分类Dev

用于过滤查询结果的参数

来自分类Dev

在查询中过滤SELECT结果

来自分类Dev

Django查询过滤-单个结果

来自分类Dev

从子查询中过滤结果

来自分类Dev

过滤文件中的查询结果

来自分类Dev

使用复杂过滤优化SQL查询

来自分类Dev

超级慢的mysql查询-需要优化

来自分类Dev

查询永远需要输出信息-优化技巧

来自分类Dev

需要帮助优化此 Sql 查询

来自分类Dev

不需要的查询结果

来自分类Dev

针对探查器结果的Marklogic查询优化

来自分类Dev

优化具有大结果集的查询

来自分类Dev

使用解释分析结果优化查询

来自分类Dev

使雄辩的查询被此查询的结果过滤

来自分类Dev

需要从过滤项获取结果

来自分类Dev

减少查询响应时间,需要优化查询

来自分类Dev

如何查询过滤不需要的记录?

来自分类Dev

如何使用模式过滤sparql查询结果?