Mysql体系结构


存储引擎


我们在建表时如果没有指定存储引擎,那么默认就是InnoDB
相关sql

show engines结果示例:

几种常见的存储引擎
InnoDB介绍

InnoDB的逻辑存储结构

MyISAM介绍

Memory介绍

总结

存储引擎的选择

我们一般使用的是InnoDB,因为MyISAM和MEMORY可以被其他数据库代替。
相关面试题
1. 什么是数据库存储引擎?MySQL 的存储引擎有什么特点?
答案:存储引擎是数据库的底层数据处理组件,负责数据的存储、读取、索引管理、事务处理等核心操作,MySQL 采用插件式存储引擎架构,不同引擎可按需选择,核心特点是与 SQL 层解耦,底层实现独立,上层 SQL 语法统一。核心考点:插件式架构、存储引擎的核心职责。
2. MySQL 默认存储引擎是什么?替换默认引擎的方式?
答案:
- 5.5 及以上版本默认InnoDB(5.1 及以下为 MyISAM);
- 替换方式:① 全局配置:my.cnf 中设置default-storage-engine=引擎名;② 会话级:SET default_storage_engine=引擎名;;③ 表级:建表时指定ENGINE=引擎名;(优先级最高)。核心考点:InnoDB 为默认、表级配置优先级最高。
3. 常用存储引擎(InnoDB/MyISAM/Memory/Archive)的适用场景?

4. InnoDB 和 MyISAM 的核心区别?
结构化作答,分维度对比,突出面试核心考点: 事务支持:InnoDB 支持 ACID 事务;MyISAM 不支持; 锁机制:InnoDB 默认行级锁(粒度细,高并发),支持表锁;MyISAM 仅表级锁(粒度粗,写阻塞读 / 写); 索引结构:InnoDB 为聚簇索引(主键与数据物理存储在一起);MyISAM 为非聚簇索引(索引与数据分离,索引存数据地址); 崩溃恢复:InnoDB 支持崩溃恢复(有 redo/undo 日志);MyISAM 不支持,易出现数据损坏,需修复; 外键:InnoDB 支持外键约束;MyISAM 不支持; 存储文件:InnoDB(.ibd 数据索引文件、.frm 结构文件);MyISAM(.MYD 数据、.MYI 索引、.frm 结构); 并发性能:InnoDB 高并发友好(行锁 + 事务);MyISAM 并发差(表锁); 自增列:InnoDB 自增列需依赖索引(无主键时自动生成隐式主键);MyISAM 自增列可独立; 全文索引 / 空间索引:MyISAM 原生支持;InnoDB 5.6 及以上支持全文索引,支持空间索引。 易混点:行锁不是绝对的,InnoDB 在无索引 / 全表扫描时会退化为表锁。
网硕互联帮助中心



评论前必须登录!
注册