事务的用法

来源:互联网 发布:ubuntu添加中文输入法 编辑:程序博客网 时间:2024/06/05 09:03

1 存储引擎

1).概念      想想张马虎与李小心的列子就懂了!      create table account(id int, name varchar(10), money int)      engine = innodb charset = utf8;2).常用的表的引擎    +-----------+----------+--------+    |  特点     |  Myisam  |InnoDB  |            +-----------+----------+--------+    |批量插入速度|     高  |   低   |              +-----------+----------+--------+    |  事务安全  |         |  支持  |             +-----------+----------+--------+    |  全文索引  |    支持 |   支持 |              +-----------+----------+--------+    |   锁机制   |   表锁  |  行锁  |             +-----------+----------+--------+    Myisam,批量插入速度快,不支持事务,锁表。    Innodb,批量插入相对较慢,支持事务,锁行。    全文索引,目前5.5的版本myisam,innodb都已经支持

2 事务

1).概念    通俗的说事务:指一组操作,要么都成功执行,要么都不执行-->原子性    在所有的操作没有执行完毕之前,其他会话不能够看到中间改变的过程-->隔离性    事务发生前,和发生后,数据的总额依然匹配-->一致性    当事务完成后,其影响应该保留下来,不能够撤销-->持久性    如果出了错误事务也不允许撤销,只能通过“补偿性事务”2).关于事务的引擎    选用innodb3).操作    开启事务:start transaction;    Sql...    Sql...    Commit 提交    rollback 回滚    注意:当一个事务commit,或者rollback就结束了!         还有一些语句会造成事务的隐式的提交,比如start transaction    ![事务的基本原理示意图](http://img.blog.csdn.net/20171214233457708?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwMTYxNzA4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)