mysql中engine=innodb和engine=myisam的区

mysql中engine=innodb和engine=myisam的区别
datetime: 2011/07/02 author : zero
MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。 MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。这 样就可以根据数据表不同的用处是用不同的存储类型。
另外,MyISAM类型的二进制数据文件可以在不同操作系统中迁移。也就是可以直接从Windows系统拷贝到linux系统中使用。
使用方法:ALTER TABLE tablename ENGINE = MyISAM ;
MyISAM :它是存储记录和文件的标准方法.与其他存储引擎比较,MyISAM具有检查和修复表格的大多数工具. MyISAM表格可以被压缩,而且它们支持全文搜索.它们不是事务安全的,而且也不支持外键。如果事物回滚将造成不完全回滚,不具有原子性。如果执行大量 的SELECT,MyISAM是更好的选择。
使用方法:ALTER TABLE tablename ENGINE = InnoDB ;
InnoDB:InnoDB表格速度很快.具有比BDB还丰富的特性,因此如果需要一个事务安全的存储引擎,建议使用它.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表,
那么,什么是 事务支持呢?
事务支持很好理解,白话就是说:比如要执行删除会员资料的操作(会员的资料在N个表中..是关联的)...如果按普通的操作而中途突然出错的话(那么现在已经删掉了一部分资料了)..那么就挂了..资料就还会有剩余的残留在数据库中...而且是不全的资料,如果用事务处理的话...那么可以一次进行...不成功的话会恢复。
那么,什么是事务回滚呢?
当执行事务的过程中发生未知的不可预料的错误时,此时为了保证事务的原子性必须执行事务回滚操作以便消除已发生的事务对数据的影响。
那么,什么是事务的原子性呢?
靠,这个不解答,留点空间给看此文的砖头们(可以留言)。。。。。
总结一下:事务只是一种最坏的情况下的一种保障措施。事实上,平时系统的运行可靠性都是相当高的,错误很少发生,因此,在每次事务执行之前都检查其有效性显得代价太高——绝大多数的情况下这种耗时的检查是不必要的。在这种即耗时又耗资源的情况下,有一种事务方式叫做事务节点,就是说,在执行事务的过程记录每个节点,在发生错误可以回滚到上一个节点来保障数据的安全性。
Tags: 

延伸阅读

最新评论

发表评论