MySQL 各种存储引擎对比

MySQL一起提供的各种存储引擎在设计时考虑了不同的使用情况。为了更有效地使用插件式存储体系结构,最好了解各种存储引擎的优点和缺点。

在下面的表格中,概要介绍了与MySQL一起提供的存储引擎:

图14.2:存储引擎比较

Storage engine comparison

下述存储引擎是最常用的:

·         MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。注意,通过更改STORAGE_ENGINE配置变量,能够方便地更改MySQL服务器的默认存储引擎。

·         InnoDB:用于事务处理应用程序,具有众多特性,包括ACID事务支持。

·         BDB:可替代InnoDB的事务引擎,支持COMMITROLLBACK和其他事务特性。

·         Memory:将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问。

·         Merge:允许MySQL DBA或开发人员将一系列等同的MyISAM表以逻辑方式组合在一起,并作为1个对象引用它们。对于诸如数据仓储等VLDB环境十分适合。

·         Archive:为大量很少引用的历史、归档、或安全审计信息的存储和检索提供了完美的解决方案。

·         Federated:能够将多个分离的MySQL服务器链接起来,从多个物理服务器创建一个逻辑数据库。十分适合于分布式环境或数据集市环境。

·         Cluster/NDBMySQL的簇式数据库引擎,尤其适合于具有高性能查找要求的应用程序,这类查找需求还要求具有最高的正常工作时间和可用性。

·         Other:其他存储引擎包括CSV(引用由逗号隔开的用作数据库表的文件),Blackhole(用于临时禁止对数据库的应用程序输入),以及Example引擎(可为快速创建定制的插件式存储引擎提供帮助)。

请记住,对于整个服务器或方案,你并不一定要使用相同的存储引擎,你可以为方案中的每个表使用不同的存储引擎,这点很重要。

关于MySQL中所包含存储引擎的详细信息,请参见14.4节,“选择存储引擎”。

 14.5. 将存储引擎指定给表

可以在创建新表时指定存储引擎,或通过使用 ALTER TABLE语句指定存储引擎。

要想在创建表时指定存储引擎,可使用ENGINE参数:

CREATE TABLE engineTest(
id INT
) ENGINE = MyISAM;

要想更改已有表的存储引擎,可使用ALTER TABLE语句:

ALTER TABLE engineTest ENGINE = ARCHIVE;

 14.6. 存储引擎和事务

下述存储引擎支持事务:

·         InnoDB:通过MVCC支持事务,允许COMMITROLLBACK和保存点。

·         NDB:通过MVCC支持事务,允许COMMITROLLBACK

·         BDB:支持事务,允许COMMITROLLBACK

 14.7. 插入存储引擎

能够使用存储引擎之前,必须使用 INSTALL PLUGIN语句将存储引擎 plugin(插件)装载到 mysql。例如,要想加载 example引擎,首先应加载 ha_example.so模块:
INSTALL PLUGIN ha_example SONAME 'ha_example.so';

文件.so必须位于MySQL服务器库目录下(典型情况下是installdir/lib)。

 14.8. 拔出存储引擎

要想拔出存储引擎,可使用UNINSTALL PLUGIN语句:

UNINSTALL PLUGIN ha_example;

如果拔出了正被已有表使用的存储引擎,这些表将成为不可访问的。拔出存储引擎之前,请确保没有任何表使用该存储引擎。

 14.9. 插件式存储器的安全含义

为了安装插件式存储引擎,plugin文件必须位于恰当的MySQL库目录下,而且发出INSTALL PLUGIN语句的用户必须具有SUPER权限。

你可能感兴趣的:(mysql,数据库,存储引擎,内模式)