阅读背景:

Mysql性能优化:为什么你的count(*)这么慢?

来源:互联网 
原文: Mysql性能优化:为什么你的count(*)这么慢?

导读 在开发中一定会用到统计一张表的行数,比如一个交易系统,老板会让你每天生成一个报表,这些统计信息少不了 sql 中的count函数。 但是随着记录越来越多,查询的速度会越来越慢,为什么会这样呢?Mysql内部到底是怎么处理的? 今天这篇文章将从Mysql内部对于count函数是怎样处理的? 本文首发于作者微信公众号【码猿技术专栏】Mysql性能优化:为什么你的count(*)这么慢?,原创不易,喜欢的请支持一下,谢谢!!! count的实现方式 在Mysql中的不同的存储引擎对count函数有不同的实现方式。 MyISAM引擎把一个表的总行数存在了磁盘上,因此执行count(*)的时候会直接返回这个数,效率很高(没有where查询条件)。 InnoDB引擎并没有直接将总数存在磁盘上,在执行count(*)函数的时候需要一行一行的将数据读出来,然后累计总数。 为什么InnoDB不将总数存起来? 导读 在开发中一定会用到统计一张表


你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: