您的位置:首页 > 数据库 > MySQL

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

2012-12-06 11:32 796 查看
  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。

mysql> SELECT * FROM CUSTOMER
-> ;
+-------+----------+------------+------+
| mid   | nam      | birth      | sex  |
+-------+----------+------------+------+
| H0001 | 鏉庡姞   | NULL       | 0    |
| H0002 | 张喜双   | 1988-05-31 | 0    |
| M0001 | 鏉庡欢   | 1976-02-05 | 1    |
| M0004 | 瀹嬪+   | 1956-08-15 | 1    |
| M0005 | 鏈辨灄   | 1982-06-08 | 0    |
| N0001 | 灏忓皬   | 1980-11-23 | 1    |
| T0001 | 鐜嬩簩   | 1980-10-21 | 1    |
+-------+----------+------------+------+
7 rows in set (0.00 sec)

mysql> BEGIN;
Query OK, 0 rows affected (0.00 sec)

mysql> DELETE FROM CUSTOMER;
Query OK, 7 rows affected (0.00 sec)

mysql> SELECT * FROM CUSTOMER;
Empty set (0.00 sec)

mysql> ROLLBACK;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT * FROM CUSTOMER;
+-------+----------+------------+------+
| mid   | nam      | birth      | sex  |
+-------+----------+------------+------+
| H0001 | 鏉庡姞   | NULL       | 0    |
| H0002 | 张喜双   | 1988-05-31 | 0    |
| M0001 | 鏉庡欢   | 1976-02-05 | 1    |
| M0004 | 瀹嬪+   | 1956-08-15 | 1    |
| M0005 | 鏈辨灄   | 1982-06-08 | 0    |
| N0001 | 灏忓皬   | 1980-11-23 | 1    |
| T0001 | 鐜嬩簩   | 1980-10-21 | 1    |
+-------+----------+------------+------+
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: