14 count为啥那么慢
14 Count 为啥那么慢 聚合函数
InnoDB 默认隔离级别是 可重复读。
在保证逻辑正确的前提下,尽量减少扫描的数据量,是数据库系统设计的通用法则之一。
- InnoDB 中 count 操作会导致对全表的便利(scan table),复杂度位:O(n);
- 对于 SQL 中的 count() 而言。count() 是聚合函数,无论计数条件是什么,都会一行一行去匹配;
- InnoDB 是索引组织表,主键索引树叶子结点存储的是数据,对于普通索引叶子结点记录的是主键值,所以普通索引比主键索引小的多;
- 按照效率排序的话,*count(字段)<count(主键id)<count(1)≈count() **