MySQL 支持多个存储引擎作为对不同表的类型的处理器,存储引擎有:MyISAM、InnoDB、MEMERY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE.可分为处理事务安全表的引擎和处理非事务安全表的引擎.

一、处理非事务安全表的引擎
1.MyISAM:提供高速存储和检索以及全文搜索的功能,是MySQL默认的插件式存储引擎,它在Web、数据仓储和其他应用环境下最常使用的存储引擎之一.通过更改STORAGE_ENGINE配置变量,能够方便地更改MySQL服务器的默认存储引擎.
2.MEMORY:提供"内存中"表.已被正式确认为HEAP引擎.将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可以提供极快的访问速度.
3:MERGE:允许集合将被处理同样的MyISAM表作为一个单独的表.允许MySQL DBA或开发人员将一系列等同的MyISAM表以逻辑方式组合在一起,并作为一个对象引用它们,对于诸如数据仓储等VLDB环境十分适合.
4.EXAMPLE:是一个"存根"引擎,可以用这个引擎创建表,但没有数据被存储于其中或从其中检索,这个引擎的目的在于服务.
5:NDB Cluster:是被MySQL Cluster用来实现分割到多台计算机的表的存储引擎.它在MySQL-Max5.1二进制分发版里提供.
这个存储引擎当前只被Linux,Solaris和Max OS X支持.在未来的MySQL分发版中,也将添加Windows对它的支持.适合于具用高性能查找要求的应用程序,这类查找需求还要求具有最高的正常工作时间可可用性.
6:ARCHIVE:用来无索引地,非常小覆盖存储的大量数据.为大量很少引用的历史、归档、或安全审计信息的存储和检索提供了完美的解决方案.
7:CVS:把数据以逗号分隔的格式存储在文本文件中.
8:BLACKHOLE:接受但不存储数,并且检索总是返回一个空集.
9:FEDERATED:所数据存在远程数据库中.在MySQL5.1中,它只和MySQL一起工作,使用MySQL Client API.在未来的分发版中,
它将使用其它驱动器或客户端连接方法连接到另外的数据源.能够将多个分离的MySQL服务器连接起来,从多个物理服务器创建一个逻辑数据库.十分适合于分布式环境或数据集市环境.

 

二、处理事务安全表的引擎
1.InnoDB:默认被包含在所有MySQL5.1二进制分发版里,可以通过配置MySQL来允许或禁止任一引擎.用于事务处理应用程序,具有众多特性,包括ACID事务支持.
2.BDB(BerkeleyDB):默认被包含在为支持它的操作系统发布的MySQL-Max二进制分发版里.实际应用中可以替代InnoDB的事务引擎,支持Commit,Rollback和其他事务特性.

 

三、如何更换这些引擎
1.全局修改:最简单的方法就是更改服务器配置,直接将其设定成所需要的引擎,在windows下可以通过更改服务器安装目录下的mysql.ini中的default-storage-engine项即可.
2.表格修改:还有另外一种更灵活的配置方法,就是按表来设置引擎.这样可能把那些需要用到事务处理的表设置成InnoDB,其他的设置成MyISAM,可将其性能提升到极致,设置方法如下:
 a.建表时添加扩展语句 Create TABLE A .... ENGINE=InnoDB
 b.建表后,可以使用Alter语句进行修改:Alter TABEL [表格名] ENGINE=InnoDB; 不清楚当前数据库中各表的引擎时可以使用SHOW TABLE STATUS FROM DBNAME 查看.