哪个存储引擎执行 select count(*) 更快

发布时间:2024年01月02日

哪个存储引擎执行 select count(*) 更快,为什么?

MylSAM更快
因为MylSAM内部维护了一个计数器,可以直接调取。
在MylSAM存储引擎中,把表的总行数存储在磁盘上,当执行「select count(*) from t」时直接返回总数据。

在InnoDB存储引擎中,当执行「count(*)」语句时,没有将总行数存储在磁盘上,会先把数据读取出来,一行一行的累加,最后返回总数量。全表扫描总数量,当数据量越来越大时,就会越来越耗时。
为什么InnoDB不把总行数存储在磁盘上,这跟InnoDB的事务特性有关,由于多版本并发控制(MVCC)的原因,InnoDB表「应该返回多少行」是不确定的。

文章来源:https://blog.csdn.net/lijiaqiong/article/details/135350667
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。