码迷,mamicode.com
首页 > 其他好文 > 详细

特定类型的查询

时间:2020-05-01 01:15:28      阅读:47      评论:0      收藏:0      [点我收藏+]

标签:一般来说   忽略   using   count   扩展   优化   count()   不可   表达   

优化count()查询

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

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

优化关联查询

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

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

优化子查询

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

limit

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

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

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

 

特定类型的查询

标签:一般来说   忽略   using   count   扩展   优化   count()   不可   表达   

原文地址:https://www.cnblogs.com/lccsblog/p/12812223.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!