- 1
- 0
- 约9.98千字
- 约 9页
- 2026-05-29 发布于河北
- 举报
数据库开发面试题及详细答案
一、基础必考题(入门级,考察核心基础)
1.请说说MySQL中InnoDB和MyISAM两个存储引擎的核心区别,实际开发中怎么选择?
答案:这两个是MySQL最常用的存储引擎,核心区别主要在事务、锁机制、索引和存储结构上,实际选择完全看业务场景,没有绝对的好坏:
(1)事务支持:InnoDB支持ACID事务,MyISAM不支持事务。比如支付、订单这类涉及资金、数据一致性的场景,必须用InnoDB;如果是日志、报表这类对事务无要求,只需要查询和插入的场景,MyISAM可行。
(2)锁机制:InnoDB支持行级锁和表级锁(默认行锁,冲突小时效率高),MyISAM只支持表级锁。比如高并发修改(比如商品库存修改),用InnoDB能避免锁表,提升并发量;如果是批量插入、很少修改的场景,MyISAM锁表影响不大。
(3)索引和存储:InnoDB索引是聚簇索引(主键索引和数据绑定,查询更快),必须有主键;MyISAM是非聚簇索引(索引和数据分离),可以没有主键。另外InnoDB支持外键,MyISAM不支持,需要外键关联表(比如订单表和用户表)时,只能用InnoDB。
(4)崩溃恢复:InnoDB有事务日志(redolog、undolog),崩溃后能恢复数据;MyISAM没有,崩溃后可能丢失数据,所以生产环境
原创力文档

文档评论(0)