资源描述:
《mysql 存储引擎和事务》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、存储引擎最常见的是:Mysam和innoDB数据库的engine显示MyISAM,批量插入速度快,不支持事务,锁表InnoDB批量插入相对较慢,支持事务,锁行-----------官方文档---------beginMySQL插件式存储引擎的体系结构下述存储引擎是最常用的:· MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。注意,通过更改STORAGE_ENGINE配置变量,能够方便地更改MySQL服务器的默认存储引擎。· InnoDB:用于事务处理应用程序,具有众多特性,包括ACID事务支持。
2、· BDB:可替代InnoDB的事务引擎,支持COMMIT、ROLLBACK和其他事务特性。· Memory:将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问。· Merge:允许MySQLDBA或开发人员将一系列等同的MyISAM表以逻辑方式组合在一起,并作为1个对象引用它们。对于诸如数据仓储等VLDB环境十分适合。· Archive:为大量很少引用的历史、归档、或安全审计信息的存储和检索提供了完美的解决方案。· Federated:能够将多个分离的MySQL服务器链接
3、起来,从多个物理服务器创建一个逻辑数据库。十分适合于分布式环境或数据集市环境。· Cluster/NDB:MySQL的簇式数据库引擎,尤其适合于具有高性能查找要求的应用程序,这类查找需求还要求具有最高的正常工作时间和可用性。· Other:其他存储引擎包括CSV(引用由逗号隔开的用作数据库表的文件),Blackhole(用于临时禁止对数据库的应用程序输入),以及Example引擎(可为快速创建定制的插件式存储引擎提供帮助)。----------------------------------end事务含义:通俗来将就是,一组操作,要么同时执行,要么同时不
4、执行。选择存储引擎InnoDB事务的使用:开启事务:starttransaction;执行sql操作(结束事务)commit(提交)/rollback(回滚/撤销)模拟银行转账示例:commit示例:说明:(结束事务)commit(提交)/rollback(回滚/撤销)之后,事务结束,如果需要再使用,那么需要重新开始事务;rollback示例:事务原理:建库建表的时候要选用InnoDB说明:-----------------摘自官方文档--------begin不能回滚的语句有些语句不能被回滚。通常,这些语句包括数据定义语言(DDL)语句,比如创建或取消数据库的语句,和创建、取消或更改
5、表或存储的子程序的语句。您在设计事务时,不应包含这类语句。如果您在事务的前部中发布了一个不能被回滚的语句,则后部的其它语句会发生错误,在这些情况下,通过发布ROLLBACK语句不能回滚事务的全部效果。 会造成隐式提交的语句以下语句(以及同义词)均隐含地结束一个事务,似乎是在执行本语句前,您已经进行了一个COMMIT。· ALTERFUNCTION, ALTERPROCEDURE, ALTERTABLE, BEGIN, CREATEDATABASE, CREATEFUNCTION, CREATEINDEX, CREATEPROCEDURE, CREATETABLE, DR
6、OPDATABASE, DROPFUNCTION, DROPINDEX, DROPPROCEDURE, DROPTABLE, LOADMASTERDATA, LOCKTABLES, RENAMETABLE, SETAUTOCOMMIT=1, STARTTRANSACTION, TRUNCATETABLE, UNLOCKTABLES.· 当当前所有的表均被锁定时,UNLOCKTABLES可以提交事务。· CREATETABLE, CREATEDATABASE DROPDATABASE, TRUNCATETABLE, ALTERFUNCTION, ALTER
7、PROCEDURE, CREATEFUNCTION, CREATEPROCEDURE, DROPFUNCTION和DROPPROCEDURE等语句会导致一个隐含提交。· InnoDB中的CREATETABLE语句被作为一个单一事务进行处理。这意味着,来自用户的ROLLBACK不会撤销用户在事务处理过程中创建的CREATETABLE语句。事务不能被嵌套。这是隐含COMMIT的结果。当您发布一个STARTTRANSACTION语句或