码迷,mamicode.com
首页 > 其他好文 > 详细

存储引擎

时间:2015-04-20 16:24:39      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:

MySQL 支持多种存储引擎包括:MyISAM、InnoDB、BDB、MEMORY、MERGE、NDB 等。
在 5.5.8 版本之前默认引擎为 MyISAM,之后的默认引擎为 InnoDB。
//查看当前的存储引擎
SHOW VARIABLES LIKE ‘%storage_engine%‘;
//查看所有存储引擎
SHOW ENGINES;

 

MyISAM 和 InnoDB 是目前用的最多的存储引擎,在 5.5 之前 MySQL 默认是 MyISAM,
而之后则是 InnoDB,这个意图非常明显,在未来 InnoDB 的优势将越来越大。
MyISAM 表在磁盘上存储成 3 个文件,其文件名都和表名相同,扩展名分别为:
  .frm(存储表结构定义);
  .MYD(MYData,存储数据);
  .MYI(MYIndex,存储索引)。


InnoDB 表在磁盘上存储成 3 个文件,其文件名都和表名相同,扩展名分别为:
  .frm(存储表结构定义);
  .ibd(存储数据和索引文件)。
  ibdata1(共享数据文件)。

 

InnoDB支持事务

 

事务(transaction)是作为整个一个单元的一组有序的数据库操作。如果一组中的所有操

作都成功,则认为事务成功,即使只有一个失败操作,事务也不成功。如果所有操作成功完

成,事务则提交(commit),其修改将作用于所有其他数据库进程。如果一个操作失败,则事

务将回滚(roll back),该事务所有操作的影响都将取消。

首先,您的MySQL是InnoDB或BDB引擎的一种,一般来说,你安装了AppServ的集成

包, 你选择InnoDB的引擎的数据库即可。 如果你建立的表不是InnoDB, 可以在phpmyadmin

里修改。

//首先你必须关闭自动提交数据

  $_mysqli->autocommit(false);

//创建一个SQL语句,必须同时运行成功,不能出现一个成功,一个失败

  $_sql .= "UPDATE tg_friend SET tg_state=tg_state+5 WHERE tg_id=1;";

  $_sql .= "UPDATE tg_flower SET tg_flower=tg_flower-5 WHERE tg_id=1;";

//执行两条SQL语句

  if ($_mysqli->multi_query($_sql)) {

//获取第一条SQL一影响的行数

  $_success = $_mysqli->affected_rows == 1 ? true : false;

//下移,第二条SQL

  $_mysqli->next_result();

//获取第二条SQL影响的行数

  $_success2 = $_mysqli->affected_rows == 1 ? true : false;

//判断是否都正常通过了,两个SQL

  if ($_success && $_success2) {

    $_mysqli->commit();

    echo ‘完美提交!‘;

  } else {

    $_mysqli->rollback();

    echo ‘程序出现异常!‘;

  }

  } else {

    echo "SQL语句有误:".$_mysqli->errno.$_mysqli->error;

  }

//最后还必须开启自动提交

  $_mysqli->autocommit(true);

 

存储引擎

标签:

原文地址:http://www.cnblogs.com/yesterday679/p/4441789.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!