COUNT(*)与COUNT(1)的效率比较

  • 2017年11月7日
  • Mysql

-- 数据表存储类型为MyISAM时:
-- 		首选COUNT(*)该函数会最快速的方式,获取查询的结果集数量,因为MyISAM会在存储引擎中存在一个精确计数的count。
-- 		然后是COUNT(1),相当于检索查询结果集的首个列名,如果返回的结果集首列定义为非空(not null),则查询的速度等同于COUNT(*)
-- 数据表存储类型为InnoDB时:
-- 		COUNT(*)与COUNT(1)查询效率是相同的,没有性能差异,但是由于事务存在,可能不同事务查询的结果数不同。
-- 
-- https://dev.mysql.com/doc/refman/5.7/en/innodb-restrictions.html

SELECT COUNT(*) FROM zblog_post;
SELECT COUNT(1) FROM zblog_post;

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注