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

数据库高效编程(mysql)

2016-03-28 21:14 281 查看

设置数据库的存储引擎

mysql中的存储引擎有

存储引擎特征
MyISAM不支持事务处理
InnoDB支持行锁定以及事务处理,比MyISAM处理速度稍慢
ISAMMyISAM引擎的前身。mySQL5.0后不再安装
MERGE将多个MyISAM类型的表作为一个表来处理的引擎
MEMORY,HEAP只在内存上保存数据
Falcon一种新的存储引擎,支持事务处理
ARCHIVE将数据压缩后存储(只能进行INSERT和SELECT操作)
CSV以CSV形式保存数据(应用于跨平台的数据交换)
查看数据库当前引擎:show create table tablename \G

使用\G替换语句后的分号,使显示出的数据更有条理。

设置存储引擎

更改某一个表的存储引擎

alter table tablename ENGINE = InnoDB;

事务回滚操作

回滚操作必须在支持事务的引擎下才行。

代码如下:

begin;

操作;

rollback;

在执行之前,先begin,执行操作之后,执行rollback即可回滚。

如果执行rollback之前执行了commit;那么无法回滚。

如果数据库自动提交功能是off,这样,不使用begin命令也可以回滚。

设置自动提交开关:set AUTOCOMMIT=0;(关)=1;(开)

查看当前自动提交状态使用,select @@AUTOCOMMIT;

部分回滚

在事务处理过程中定义保存点(SAVEPOINT),可以回滚到指定保存点。语法如下:

定义保存点:savepoint 保存点名;

回滚:rollback to savepoint 保存点名;

事务不起作用的代码

drop database;

drop table;

drop;

alter table;

这些sql执行后会被立即commit,不能回滚。

待续
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: