专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »数据库 » mysql存储过程:如何选择合适的MySQL存储引擎 »正文

mysql存储过程:如何选择合适的MySQL存储引擎

来源: 发布时间:星期二, 2009年2月10日 浏览:53次 评论:0
="t18">本文将讲述MySQL中多种存储引擎特点希望可以给你在选择MySQL存储引擎时带来帮助

MySQL有多种存储引擎:

MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE

MySQL支持数个存储引擎作为对区别表类型处理器MySQL存储引擎包括处理事务安全表引擎和处理非事务安全表引擎:

◆ MyISAM管理非事务表它提供高速存储和检索以及全文搜索能力MyISAM在所有MySQL配置里被支持它是默认存储引擎除非你配置MySQL默认使用另外个引擎

◆ MEMORY存储引擎提供“内存中”表MERGE存储引擎允许集合将被处理同样MyISAM表作为个单独就像MyISAMMEMORY和MERGE存储引擎处理非事务表这两个引擎也都被默认包含在MySQL中

注释:MEMORY存储引擎正式地被确定为HEAP引擎

◆ InnoDB和BDB存储引擎提供事务安全表BDB被包含在为支持它操作系统发布MySQL-Max 2进制分发版里InnoDB也默认被包括在所 有MySQL 5.1 2进制分发版里你可以按照喜好通过配置MySQL来允许或禁止任引擎

◆ EXAMPLE存储引擎是个“存根”引擎它不做什么你可以用这个引擎创建表但没有数据被存储于其中或从其中检索这个引擎是服务在 MySQL源代码中个例子它演示介绍说明如何开始编写新存储引擎同样主要兴趣是对开发者

◆ NDB Cluster是被MySQL Cluster用来实现分割到多台计算机上存储引擎它在MySQL-Max 5.1 2进制分发版里提供这个存储引擎当前只被Linux, Solaris, 和Mac OS X 支持在未来MySQL分发版中我们想要添加其它平台对这个引擎支持包括Windows

◆ ARCHIVE存储引擎被用来无索引地非常小地覆盖存储大量数据

◆ CSV存储引擎把数据以逗号分隔格式存储在文本文件中

◆ BLACKHOLE存储引擎接受但不存储数据并且检索总是返回个空集

◆ FEDERATED存储引擎把数据存在远程数据库中在MySQL 5.1中它只和MySQL起工作使用MySQL C Client API在未来分发版中我们想要让它使用其它驱动器或客户端连接思路方法连接到另外数据源

当你创建个新表时候你可以通过添加个ENGINE 或TYPE 选项到CREATE TABLE语句来告诉MySQL你要创建什么类型表:

CREATE TABLE t (i INT) ENGINE = INNODB;

CREATE TABLE t (i INT) TYPE = MEMORY;

虽然TYPE仍然在MySQL 5.1中被支持现在ENGINE是首选术语

如何选择最适合你存储引擎呢?

下述存储引擎是最常用:

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

◆ InnoDB:用于事务处理应用具有众多特性包括ACID事务支持

◆ BDB:可替代InnoDB事务引擎支持COMMIT、ROLLBACK和其他事务特性

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

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

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

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

◆ Cluster/NDB:MySQL簇式数据库引擎尤其适合于具有高性能查找要求应用这类查找需求还要求具有最高正常工作时间和可用性

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

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

mysql> show engines;
+------------+---------+----------------------------------------------------------------+
| Engine | Support | Comment |
+------------+---------+----------------------------------------------------------------+
| MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables |
| InnoDB | YES | Supports transactions, row-level locking, and foreign keys |
| BerkeleyDB | NO | Supports transactions and page-level locking |
| BLACKHOLE | NO | /dev/null storage engine (anything you write to it disappears) |
| EXAMPLE | NO | Example storage engine |
| ARCHIVE | NO | Archive storage engine |
| CSV | NO | CSV storage engine |
| ndbcluster | NO | Clustered, fault-tolerant, memory-based tables |
| FEDERATED | NO | Federated MySQL storage engine |
| MRG_MYISAM | YES | Collection of identical MyISAM tables |
| ISAM | NO | Obsolete storage engine |
+------------+---------+----------------------------------------------------------------+

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: