特定类型的查询
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缩小扫描范围
以上是关于特定类型的查询的主要内容,如果未能解决你的问题,请参考以下文章