| 引擎对比 | 事务 | 并发能力 | 数据安全 | count(*) |
| InnoDb | 把 | |||
| MyISAM | 表的总行数存在磁盘里 |
| 引擎对比 | count(*) |
| InnoDb | 读取每一行记录做累加 |
| MyISAM | 表的总行数存在磁盘里(加where条件一样很慢) |
MVCC:主要是事务之前的并发(可重复读通过MVCC实现)
show table status,TABLE_ROWS表示多少行(通过采样估算来的)
自己计数的方法(找个地方,把行数存起来)
用redis计数,不同的线程之前可能会有数据的查询丢失
用mysql计数,由于可重复读机制,别的地方读到的都是统一值
count 聚合函数
count()的用法 主键ID(从引擎取出ID,不为null累加)、1()、字段(取出对应字段)、*(取出数据)
博客介绍了MVCC,其主要用于事务间的并发,可重复读通过它实现。还提及数据库行数计数方法,如show table status的TABLE_ROWS是采样估算值,也可自行计数,用redis计数可能有查询丢失问题,用mysql计数因可重复读机制能保证一致性,最后介绍了count聚合函数的用法。
2604

被折叠的 条评论
为什么被折叠?



