数据库高效编程(mysql)

来源:互联网 发布:淘宝网名昵称大全2016 编辑:程序博客网 时间:2024/06/10 05:47

设置数据库的存储引擎

mysql中的存储引擎有

存储引擎 特征 MyISAM 不支持事务处理 InnoDB 支持行锁定以及事务处理,比MyISAM处理速度稍慢 ISAM MyISAM引擎的前身。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,不能回滚。

待续

0 0
原创粉丝点击