MyISAM是MySQL 5.5前默认引擎,轻量快速但不支持事务、外键和行级锁;采用.frm、.MYD、.MYI文件分离存储,支持全文索引与只读优化,适用于读多写少场景,慎用于高并发写或需事务的业务。

MyISAM 是 MySQL 在 5.5 版本之前默认的存储引擎,由早期的 ISAM 改进而来,主打轻量、快速和简单。它不支持事务、外键和行级锁,但读取性能高、全文索引成熟,适合对数据一致性要求不高、以查询为主的场景。
它把表结构、数据、索引分开存放:
– .frm 文件存表定义(所有引擎通用);
– .MYD 文件存实际数据;
– .MYI 文件存索引信息。
这种分离结构让备份、迁移、修复更直观,比如直接复制这三个文件就能“搬表”,但崩溃后无法自动恢复一致状态。
MyISAM 只支持表级锁:
– 执行 SELECT 时加共享锁(多个读可并行);
– 执行 INSERT/UPDATE/DELETE 时加排他锁(整个表被独占);
– 读写互斥:写入时其他读、写全部等待;读取中也不允许写入。
这意味着它不适合高并发写场景,但在纯读或读远多于写的系统里,开销小、响应快。
在 MySQL 5.6 之前,MyISAM 是唯一原生支持 FULLTEXT 全文索引的官方引擎,这对博客、新闻站等文本检索需求非常关键。
它还支持:
– 压缩表(用 myisampack 工具生成只读压缩版本,节省空间);
– 延迟更新索引(DELAY_KEY_WRITE=1,批量插入时不实时写索引,提升写速,但断电可能丢索引);
– 静态表(固定长度字段,访问更快、恢复更稳,但浪费空间)。
适合:
– 日志归档表、报表统计表(只读或极少更新);
– 博客/资讯类网站的内容主表(大量 SELECT + 少量 INSERT);
– 需要快速全文搜索且不依赖事务的老系统。
慎用:
– 电商订单、账户余额等需要事务原子性或外键约束的业务;
– 写操作频繁、并发高的在线服务;
– 对崩溃恢复有强要求的生产环境(MyISAM 没有 WAL 日志,宕机后需手动 repair)。
以上就是什么是myisam引擎_mysql老引擎特点的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号