MySQL事务和引擎的区别
MySQL事务
所谓事务:就是当要完成某个事情时,这个事情包含多个任务;当所有的任务都执行成功,这个事情就是成功的,所有改动的数据都会生效;当有某一个任务执行失败,这个事情就是失败的,所有改动的数据都会回滚。
事务具有四大特性:原子性,一致性,隔离性,持久性
- 原子性(要么不谈,要谈就结婚)
- 原子性是指事务包含的所有操作,要么全部成功,要不全部失败回滚。
- 一致性(谈恋爱对我什么样,结婚后还怎对我):
- 一致性是指事务从必须从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和之后都必须处于一致性状态。
- 隔离性(闹完洞房,就是两个人的事了)
- 隔离性是指当多个用户并发访问数据库时,比如同时操作同一张表时,数据库为每一个用户开启事务,不能被其他事务所干扰,多个并发事务之间要隔离。
- 持久性(一旦领证,就不能后悔)
- 持久性是指一个事务一旦提交之后,那么对数据库的操作就是永久的,即便时数据库系统遇到故障的清空下也不会丢失提交的事务操作。
事务管理关键词
开启事务:start transaction | begin | set autocommit = 0
执行SQL语句à 多条SQL语句
提交事务Commit | 回滚事务 Rollback
MySQL两个引擎的区别
列举两个最常用的MySQL引擎的区别:MyISAM 和 InnoDB
简单的说一下两个的区别:
- MySQL默认采用的引擎时:MyISAM。
- MyISAM不支持事务;InnoDB支持事务。
- MyISAM不支持行锁定,支持整表锁定;InnoDB支持行锁定。
- MyISAM不支持外键;InnoDB支持外键。
- InnoDB外键范围更大,时MyISAM的2倍。
- MyISAM支持全文检索;InnoDB不支持全文检索;但可以使用sphinx插件支持全文索引。
参考链接:
http://www.cnblogs.com/y-rong/p/8110596.html
https://www.cnblogs.com/dashafa/p/3991137.html
https://www.cnblogs.com/fjdingsd/p/5273008.html