mysql的存储引擎
从MySQL架构看出,存储引擎层,主要为server层服务,提供读写接口,不同的存储引擎实现不同的类,是表级别。
是可插拔的存储引擎体系结构。
一个数据库中多个表可以使用不同引擎以满足各种性能和实际需求。
InnoDB 现在是 MySQL 默认的存储引擎,支持事务、行锁和外键.
::存储引擎对比
一句话总结
一般使用innodb, 支持**事务、行锁和外键**。
myisam,表锁,适合读性能高的场景,无事务
memory,没什么使用,服务关闭消息会丢失。
- InnoDB 支持事务,MyISAM 不支持事务
- InnoDB 支持行锁。一个更新语句会锁住整张表,导致其他查询和更新都会被阻塞,因此并发访问受限
- InnoDB 是聚集索引(索引和数据文件保存一起),MyISAM 是非聚集索引(索引保存的是数据文件的指针)。
- MyISAM支持全文索引,InnoDB不支持(可使用sphinx插件来支持,效果更好)
- InnoDB 不保存表的具体行数,而MyISAM 用一个变量保存了整个表的行数
- InnoDB 支持外键,而 MyISAM 不支持。