MySQL从InnoDB转MyISAM后count查询效率为何大幅提升
近日,公司有一张业务日志表的数据量超过 500 万条后,执行 count(*) 统计总数需要 4 分 55 秒。后来将该表的存储引擎从 InnoDB 转换为 MyISAM 后,count 查询性能得到大幅提升,耗时从 4 分 55 秒优化到了 0 01 秒。下面是具体操作步骤:mysql> sele
近日,公司有一张业务日志表的数据量超过 500 万条后,执行 count(*) 统计总数需要 4 分 55 秒。后来将该表的存储引擎从 InnoDB 转换为 MyISAM 后,count 查询性能得到大幅提升,耗时从 4 分 55 秒优化到了 0.01 秒。

下面是具体操作步骤:
mysql> select count(*) from tb_option_log; 用时4min55s
mysql>show table status from 库名 where name='tb_option_log'; Engine显示为:InnoDB
mysql> alter table tb_option_log type ='myisam';
mysql>show table status from 库名 where name='tb_option_log'; Engine显示为:MyISAM
mysql> select count(*) from tb_option_log; 用时0.01s
补充说明:
MyISAM
MyISAM 是 MySQL 默认的存储引擎之一。
每张 MyISAM 表通常会对应三个文件:.frm 文件用于保存表结构定义,数据文件为 .MYD(MYData),索引文件为 .MYI(MYIndex)。
由于 MyISAM 结构相对简单,因此在部分查询场景下效率往往高于 InnoDB,小型应用或以读操作为主的场景中,使用 MyISAM 是一个不错的选择。
MyISAM 表以文件形式保存,因此在跨平台进行数据迁移时,使用 MyISAM 存储引擎通常可以减少不少麻烦。
以下是一些细节和具体实现上的差别:
1.InnoDB不支持FULLTEXT类型的索引。
2. InnoDB 不会保存表的精确行数。当执行 select count(*) from table 时,InnoDB 往往需要扫描整张表来完成统计;而 MyISAM 只需直接读取预先保存的行数即可。因此,在没有 where 条件的情况下,MyISAM 的 count(*) 查询速度通常远高于 InnoDB。需要注意的是,当 count(*) 带有 where 条件时,两种存储引擎的处理方式会有所不同。对于 InnoDB 表,如果使用 count(*) 或 count(主键),并配合 where col 条件(其中 col 不是主键,但具备唯一约束索引),查询速度也会非常快,并可在一定程度上避免全表扫描。
3.对于 AUTO_INCREMENT 类型字段,InnoDB 中必须为该字段建立单独索引;而在 MyISAM 表中,则可以与其他字段一起创建联合索引。
4.DELETE FROM table 时,InnoDB 不会重新建立表,而是逐行删除数据。
5.LOAD TABLE FROM MASTER 操作对 InnoDB 是无效的。常见解决方式是先将 InnoDB 表转换为 MyISAM 表,导入数据后再改回 InnoDB;但如果表中使用了额外的 InnoDB 特性(例如外键),则不适合采用这种方法。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
Redis是什么:核心特性、架构与应用场景解析
Redis是一款基于内存的键值型NoSQL数据库,以超高读写速度和丰富的数据结构著称。本文系统梳理Redis的核心特性、架构组成、性能优势及典型应用场景,并通过与Memcached、MySQL、MongoDB的对比,帮助开发者快速判断Redis是否适合当前业务需求。
Windows 安装 MongoDB 完整图文教程
本文详细介绍在 Windows 系统上安装 MongoDB 的完整流程。从官网下载 MSI 安装包开始,逐步演示自定义安装路径、配置 Windows 服务、跳过 MongoDB Compass 等关键选项,并提供通过系统服务列表验证安装是否成功的方法,帮助开发者快速搭建本地 MongoDB 环境。
Linux 安装 MongoDB 完整指南:依赖配置、环境变量与服务启动
本文详解在 Linux 系统下安装 MongoDB 的完整流程,涵盖依赖包安装、二进制包下载解压、环境变量配置、数据与日志目录创建及服务启动验证。通过标准化命令与路径说明,帮助开发者快速完成部署并确认服务状态。
MacOS安装MongoDB完整教程
本文介绍在MacOS系统下安装MongoDB的完整流程,涵盖下载、解压、目录配置、环境变量设置及服务启动。通过明确的命令与参数说明,帮助开发者快速完成环境搭建并验证安装结果。
Ubuntu系统安装与配置Redis完整指南
本文详解在Ubuntu系统中安装Redis的两种主流方式:apt在线安装与源码编译安装。涵盖版本选择逻辑、服务启停与状态检查、连接验证方法,以及在线练习工具与桌面GUI客户端的对比与使用建议,帮助开发者快速搭建并验证Redis运行环境。
- 热门数据榜
1
2
3
4
5
6
7
8
9
10
相关攻略
2026-09-01 06:20
2026-09-01 06:20
2026-09-01 06:20
2026-09-01 06:19
2026-09-01 06:19
2026-09-01 06:19
2026-09-01 06:18
2026-09-01 06:18
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

