mysql的存储引擎

mysql的存储引擎,就像是服务层定义了api,有着由不同的存储引擎实现,如innodb,myisam,memory

从MySQL架构看出,存储引擎层,主要为server层服务,提供读写接口,不同的存储引擎实现不同的类,是级别。
是可插拔的存储引擎体系结构。
一个数据库中多个表可以使用不同引擎以满足各种性能和实际需求。
InnoDB 现在是 MySQL 默认的存储引擎,支持事务、行锁和外键.

::存储引擎对比

一句话总结

一般使用innodb, 支持**事务行锁和外键**。
myisam,表锁,适合读性能高的场景,无事务
memory,没什么使用,服务关闭消息会丢失。

  1. InnoDB 支持事务,MyISAM 不支持事务
  2. InnoDB 支持行锁。一个更新语句会锁住整张表,导致其他查询和更新都会被阻塞,因此并发访问受限
  3. InnoDB 是聚集索引(索引和数据文件保存一起),MyISAM 是非聚集索引(索引保存的是数据文件的指针)。
  4. MyISAM支持全文索引,InnoDB不支持(可使用sphinx插件来支持,效果更好)
  5. InnoDB 不保存表的具体行数,而MyISAM 用一个变量保存了整个表的行数
  6. InnoDB 支持外键,而 MyISAM 不支持。