Mysql冷知识之select count(*) 是否会全盘扫描

新问题

  • 当用 select count(*) from world.city,会全盘扫描吗,效率最低?

explain select count(*) from city;

知识点

  • 纠正误区,在mysql中,5.6及以上版本,通过优化器分析,使用了辅助索引,而并不是聚簇索引或全盘扫描;
  • mysql在count()中,会使用成本最小的辅助索引查询方式来计数,由此可以看出mysql已经对count()做了优化;
  • count()是 sql 92定义的标准统计行数的语法,并且效率高,所以建议直接使用count()来查询表的行数;

课程视频

mysql_coldknowlegde_lesson8on bilibili
mysql_coldknowlegde_lesson8on xigua

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。