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 * FROMCUSTOMER2 ->;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.00sec)15
16 mysql> BEGIN;17 Query OK, 0 rows affected (0.00sec)18
19 mysql> DELETE FROMCUSTOMER;20 Query OK, 7 rows affected (0.00sec)21
22 mysql> SELECT * FROMCUSTOMER;23 Empty set (0.00sec)24
25 mysql> ROLLBACK;26 Query OK, 0 rows affected (0.00sec)27
28 mysql> SELECT * FROMCUSTOMER;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
如果觉得《mysql存储引擎处理_[MySql学习笔记] 四 存储引擎事务处理》对你有帮助,请点赞、收藏,并留下你的观点哦!