[MySql学习笔记] 四 存储引擎事务处理

  MySql有一个重要的特征,被称为Pluggable Storage Engine Architecture(可替换存储引擎构架)。有两个重要的存储引擎:MyISAM 和 InnoDB 。其中MyISAM不支持事务处理,但是速度较快,InnoDB支持行锁定及事务处理,比MyISAM速度稍慢。有一个最新的存储引擎Falcon也支持事务处理,以后可以研究一下。Mysql5.5使用的默认存储引擎是InnoDB。

  使用命令 SHOW CREATE TABLE 表名  命令可以显示使用的是哪种存储引擎。更改表的引擎可以使用ALTER TABLE 表名 ENGINE=新引擎

  在sql命令后面用\G来代替分号,可以使得显示的内容更加有条理。

  跟事务相关的命令有 BEGIN(或者 START TRANSACTION), COMMIT, ROLLBACK。

 1 mysql> SELECT * FROM CUSTOMER
 2     -> ;
 3 +-------+----------+------------+------+
 4 | mid   | nam      | birth      | sex  |
 5 +-------+----------+------------+------+
 6 | H0001 | 鏉庡姞   | NULL       | 0    |
 7 | H0002 | 张喜双   | 1988-05-31 | 0    |
 8 | M0001 | 鏉庡欢   | 1976-02-05 | 1    |
 9 | M0004 | 瀹嬪+   | 1956-08-15 | 1    |
10 | M0005 | 鏈辨灄   | 1982-06-08 | 0    |
11 | N0001 | 灏忓皬   | 1980-11-23 | 1    |
12 | T0001 | 鐜嬩簩   | 1980-10-21 | 1    |
13 +-------+----------+------------+------+
14 7 rows in set (0.00 sec)
15 
16 mysql> BEGIN;
17 Query OK, 0 rows affected (0.00 sec)
18 
19 mysql> DELETE FROM CUSTOMER;
20 Query OK, 7 rows affected (0.00 sec)
21 
22 mysql> SELECT * FROM CUSTOMER;
23 Empty set (0.00 sec)
24 
25 mysql> ROLLBACK;
26 Query OK, 0 rows affected (0.00 sec)
27 
28 mysql> SELECT * FROM CUSTOMER;
29 +-------+----------+------------+------+
30 | mid   | nam      | birth      | sex  |
31 +-------+----------+------------+------+
32 | H0001 | 鏉庡姞   | NULL       | 0    |
33 | H0002 | 张喜双   | 1988-05-31 | 0    |
34 | M0001 | 鏉庡欢   | 1976-02-05 | 1    |
35 | M0004 | 瀹嬪+   | 1956-08-15 | 1    |
36 | M0005 | 鏈辨灄   | 1982-06-08 | 0    |
37 | N0001 | 灏忓皬   | 1980-11-23 | 1    |
38 | T0001 | 鐜嬩簩   | 1980-10-21 | 1    |
39 +-------+----------+------------+------+
40 7 rows in set (0.00 sec)

  一般来说,如果不用事务处理,则会自动被COMMIT,比如使用MyISAM时就会自动提交,在使用InnoDB时可以设置参数AUTOCOMMIT来确定是否自动提交。

  将自动提交功能置为OFF  则 SET AUTOCOMMIT=0    将自动提交设置为ON   则用命令  SET AUTOCOMMIT=1;  查看当前状态  SELECT @@AUTOCOMMIT;

  部分回滚,可以定义保存点(SAVEPOINT)然后回滚到指定的保存点签的状态   SAVEPOINT 保存点名;   ROLLBACK TO SAVEPOINT 保存点名;

 

  以下几条SQL命令,执行后将被自动提交,是在事务处理可以利用的范围之外的。

  • DROP DATABASE
  • DROP TABLE
  • DROP
  • ALTER TABLE

 

 

posted @ 2012-12-06 11:32  liangflying  阅读(776)  评论(0编辑  收藏  举报