[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。
一般来说,如果不用事务处理,则会自动被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
使用命令 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
相关文章推荐
- Mysql 存储引擎学习笔记
- MySQL 5.6学习笔记(数据库基本操作,查看和修改表的存储引擎)
- MySQL学习笔记_如何选择合适的存储引擎
- MySQL自学笔记7--存储引擎、事务
- [MySql学习笔记] 五 锁定和事务处理分离水平
- 【mysql学习笔记】-事务处理
- MySQL学习笔记(四):存储引擎的选择
- MySQL入门学习笔记之存储引擎
- 18.笔记 MySQL学习——MYSQL存储引擎
- mysql 笔记 六 存储引擎 事务 索引 存储过程
- mysql学习笔记——支持存储引擎
- mysql性能优化学习笔记-存储引擎
- MySQL学习笔记之五:存储引擎和查询缓存
- mysql存储过程学习笔记--错误处理
- MySQL自学笔记7--存储引擎、事务
- MySQL学习笔记七:存储引擎
- MySQL学习(三)【MySQL事务与存储引擎】
- mysql事务处理 存储引擎
- 49.笔记 MySQL学习——事务处理
- 22.笔记 MySQL学习——Memory存储引擎