当前位置: 代码迷 >> Sql Server >> mysql那么多储存引擎,马哥linux里讲了好多种,说最常用的的是innodb和myisam, 为什么常用的就两种呢,请教你们生产场景中用的哪几种?有比较过吗
  详细解决方案

mysql那么多储存引擎,马哥linux里讲了好多种,说最常用的的是innodb和myisam, 为什么常用的就两种呢,请教你们生产场景中用的哪几种?有比较过吗

热度:17   发布时间:2016-04-24 10:05:13.0
mysql那么多储存引擎,马哥linux里讲了好多种,说最常用的的是innodb和myisam, 为什么常用的就两种呢,请问你们生产场景中用的哪几种?有比较过吗
mysql那么多储存引擎,马哥linux里讲了好多种,说最常用的的是innodb和myisam,
为什么常用的就两种呢,请问你们生产场景中用的哪几种?有比较过吗
------解决方案--------------------
innodb和myisam的最大区别是前者支持事务 后者不支持事务。

MyISAM:这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的 顺序访问方法) 的缩写,它是存储记录和文件的标准方法.与其他存储引擎比较,MyISAM具有检查和修复表格的大多数工具. MyISAM表格可以被压缩,而且它们支持全文搜索.它们不是事务安全的,而且也不支持外键。如果事物回滚将造成不完全回滚,不具有原子性。如果执行大量 的SELECT,MyISAM是更好的选择。 


InnoDB:这种类型是事务安全的.它与BDB类型具有相同的特性,它们还支持外键.InnoDB表格速度很快.具有比BDB还丰富的特性,因此如果需要一个事务安全的存储引擎,建议使用它.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表, 对于支持事物的InnoDB类型的表,影响速度的主要原因是AUTOCOMMIT默认设置是打开的,而且程序没有显式调用BEGIN 开始事务,导致每插入一条都自动Commit,严重影响了速度。可以在执行sql前调用begin,多条sql形成一个事物(即使autocommit打 开也可以),将大大提高性能
  相关解决方案