mysql事务处理 存储引擎

一,什么是事务
在数据库系统的世界里,事务(transaction)是指把多个数据库操作当做一个整体(块)来对待。数据库系统确保操作要么全都正确地得到执行,要么全都不执行,即使在事务过程中出现了停电、计算机崩溃或其他灾难事件也是如此。这样一来,就不会发生从银行账户汇出了一笔钱款、但对方却因为系统出了某种问题而未能收到这笔钱款的事情了。
事务机制还可以让程序员安全、及时地中止一组命令的执行(并把数据库恢复到这组命令开始执行前的状态)。有了事务机制,程序员在软件开发过程中需要考虑和解决的问题将大为减少。
MySQL对事务的支持由来已久,只是有不少人不了解这一事实而已。要知道,MySQL能够以好几种格式来保存数据表。MySQL数据库系统在默认的情况下会把数据表保存为MyISAM格式,这种格式不支持事务。但有几种格式是支持事务的,它们当中最为流行的是InnoDB格式

二,MyISAM和InnoDB存储引擎的区别
MyISAM属于非事务安全型,innodb和bdb属于事务安全型,在使用上,包括建立表,insert,select等等操作上有没有什么区别。但是MyISAM引擎速度比较快、比较简单、而InnoDB支持外键、其速度相对就慢了。
MyISAM 类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。这样就可以根据数据表不同的用处是用不同的存储类型。另外,MyISAM类型的二进制数据文件可以在不同操作系统中迁移。也就是可以直接从Windows系统拷贝到linux系统中使用。所以我一般都是使用myisam,因为这次用的也不是很深入的。如果把这类型从MyISAM转成InnoDB会不会有问题、但是全文索引失效.
使用两种的选择:如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表。如果执行大量的 SELECT,MyISAM是更好的选择。若需要使用事务处理,但是原来的数据表使用的是MyISAM,就需要改为bdb或者innodb,这样基于MyISAM的程序,将类型改为innodb后,其程序不用改动。

猜你喜欢

转载自errenzhuan.iteye.com/blog/2341233