特定类型的查询

Posted lccsblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了特定类型的查询相关的知识,希望对你有一定的参考价值。

优化count()查询

可以统计某个列值的数量,也可以统计行数。在统计列值时要求列值时非空的(不统计null)。

如果在count()的括号中制定了列或者列的表达式,则统计的就是这个表达式有值的结果数。当mysql确认括号内的表达式值不可能为空时,实际上就是在统计行数。最简单的就是当我们使用count(*)的时候,这种情况下通配符*并不会像我们猜想的那样扩展所有的列,实际上,它会忽略所有的列而直接统计所有的行数。

优化关联查询

1.确保on或者using子句中的列上有索引,一般来说只需要在关联顺序中的第二个表的相应列上创建索引

2.确保任何group by和order by中的表达式只涉及到一个表中的列,这样mysql才有可能使用索引来优化这个过程。

优化子查询

关于子查询优化最重要的优化建议就是尽可能使用关联查询代替。

limit

在偏移量非常大的时候,比如limit1000,20这样的查询,这时mysql需要查询10020条记录然后只返回20条。前面的10000条记录都将被抛弃,这样代价非常高

最简单的办法是使用覆盖索引。

记录“数千万”通过where缩小扫描范围

 

以上是关于特定类型的查询的主要内容,如果未能解决你的问题,请参考以下文章

使用 MongoDb 聚合管道根据特定类型查询前 10 项

如何忽略层次结构查询中特定类型的直接父级

优化特定类型的查询

SharePoint 2013 查询特定内容类型

sql PostgresSQL查询显示给定用户具有特定类型权限的表

如何用sql查询某值类型字段各个记录中含有的特定数字?