数据库高效编程(mysql)

设置数据库的存储引擎

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,不能回滚。

待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值