MySQL 统计总数 count 算全表扫描吗?

2019-05-21 23:51:29 +08:00
 okwork
每隔一段时间要统计下表中的三个子类的总数目,count 汇总值,算全表扫描吗?
3218 次点击
所在节点    问与答
6 条回复
WytheHuang
2019-05-22 00:05:28 +08:00
explain
msg7086
2019-05-22 00:09:19 +08:00
请用等同生产的环境做 Explain。
不同的版本、不同的变体、不同的引擎,甚至不同的表结构,都会导致优化不同。
carlclone
2019-05-22 06:19:19 +08:00
计数器递增
agostop
2019-05-22 08:28:44 +08:00
用索引 count
sdot96
2019-05-22 08:50:29 +08:00
看引擎
nekoneko
2019-05-22 14:54:02 +08:00
InnoDB:count(主键) 全表扫描累加,count(1)全表扫描累加,count(字段)分为字段可为空和字段不可为空,不可为空则读到后累加,可为空则读到后判断不为空累加。count(*) 不取值累加。除了 count(*)外其他都要取值基本上 count(*)是最快的

MyISAM: 会记录一张表的行数,count 时直接返回行数

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/566385

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX