zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

第51讲:SQL优化之COUNT查询的优化

SQL 优化 查询 count 51
2023-09-14 09:09:23 时间

1.COUNT查询优化的概念

在很多的业务场景下可能需要统计一张表中的总数据量,当表的数据量很大时,使用COUNT统计表数据量时,也是非常耗时的。

MyISAM引擎会把一个表的总行记录在磁盘中,当执行count(*)的时候会直接从磁盘中读取总数然后进行返回,效率很高,当时如果使用count统计某个字段不为NULL的数据总数时,MyISAM也会很慢。

INNP引擎相对更麻烦,执行count(*)时,就需要把数据一行一行从引擎中读出来,然后进行累积计数。

想要大幅度提升InnoDB中count的效率,主要优化思路就是自己计数,但是带条件的count还是会比较麻烦。

我们可以根据count的用法,最大可能性的优化count的效率。

count是一个聚合函数,对于返回的结果集进行一行行的判断,如果count函数取到的一行数据不为NULL,那么累加值就加1,否则不计数,最后返回累积的值。

2.COUNT函数的用法

COUNT(主键):

  • 当使用count(主键)这种方式时,InnoDB引擎会便利整张表,然后将每一行的主键字段的值取出来,返回给服务层,服务层拿到主键后,直接按照行进行累加,主键字段不可能为NULL值&#x