事务专题(三)补充--事务基础

来源:互联网 发布:善领p57数据升级工具 编辑:程序博客网 时间:2024/06/06 03:15
补充(1)date类型的数据(xxxx-xx-xx)要加引号,单引号或双引号均可。如'1991-07-04'(2)一个单引号引发的MYSQL性能问题分析http://www.jb51.net/article/26488.htm-->我们在写SQL查询的时候还是不厌其烦的加上单引号吧,似乎那没有坏处

1.常见的存储引擎(了解两种)

Myisam:高速不支持事务;InnoDB:支持行锁定和事务处理,速度比Myisam稍慢。

2.事务的概念

经典案例:
银行转钱,A减少的和B增加的要完整进行(原子性),且数目一样(一致性

事务是DBMS的执行单位,它由有限个数据库操作语句组成。但并不是任何的数据库操作序列都能成为事务,必须满足4个条件(ACID):(1)原子性(Autmic):一个原子事务要么全部执行,要么全部不执行。一旦有任务执行失败,整个事务的任何操作都会撤销;全部成功事务会被提交,对数据的修改时永久性的。(2)一致性(Consistency):开发人员来保证,如A转出的金额和B收入的金额一样。(3)隔离性(Isolation):事务必须在不干扰其他事务的前提下进行。(4)持久性(Durability):已经提交的事务不会丢失。

3.事务涉及的命令
可能涉及到三个命令:

--声明事务的开始begin(或start transaction)--提交整个事务commit--回滚到事务的初始状态rollback

部分回滚:

 SAVEPOINT savepoint_name(在某一命令后标记) ROLLBACK TO SAVEPOINT savepoint_name

开启事务后必须需要提交。

提交(commit)后的事务即使rollback也还是更改了。

关于commit,mysql中的每条语句都会自动的commit,默认开启自动提交功能。使用事务begin开启了事务后,就关闭了自动提交。可以手动开启或关闭自动提交。

set autocommit=0;

其他链接:

事务中的锁,行锁与表锁
http://blog.sina.com.cn/s/blog_703074da0101ghsh.html