`
samana
  • 浏览: 19788 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

MySQL的存储引擎

阅读更多


MYSQL的共有7种存储引擎。每一种引擎都是完全不同的, 都是为了满足特定应用的需要。
你可已选择最适合的引擎而不是向oracle里头只有一种通用的存储引擎。

 

MySQL Storage Engines Overview(MySQL 存储引擎简介)

MyISAM: 默认的存储引擎, 不支持事务机制,数据可靠性中等, 表级锁。在读操作占多数的应用中有很好的性能,大部分web和数据库存服务都用了MyISAM.  MyISAM强调了快速读取操作, 它在设计之时就考虑到数据库被查询的次数要远大于更新的次数。因此,ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源

HEAP:  数据都在内存中, 读取速度很快, 然而它所管理的数据是不稳定的, 一旦宕机则所有数据丢失,很适合于小规模的临时表。HEAP表格在你需要使用SELECT表达式来选择和操控数据的时候非常有用。要记住,在用完表格之后就删除表格。让我再重复一遍:在你用完表格之后,不要忘记删除表格。

Archive: 用于存储无索引的大量数据

Merge: 允许你把许多结构相同的表合并为一个表。然后,你可以执行查询,从多个表返回的结果就像从一个表返回的结果一样。每一个合并的表必须有同样的表定义。
你只能合并MyISAM表而且必须严格遵守相同的表定义的限制。

InnoDB: 支持事务机制, 由于有行级锁适合于写操作很多的应用, 有很好的数据恢复功能和可靠性。

NDB: 基于集群的引擎-数据被自动切分并复制到数个机器上(数据节点), 适合于那些需要极高查询性能和高可用性的应用, 原来是为爱立信的电信应用设计的。 NDB提供了高达99.999%的可靠性,在读操作多的应用中表现优异。 对于有很多并发写操作的应用, 还是推荐用InnoDB.NDB最大的缺点是它的设计是要求内存能容纳整个数据库, 如果你的数据库占用的空间太大, 那NDBCluster就不适合了。

 

存储引擎说明图

 

横向比较的是效率,纵向比较的数据可靠性

 

 

针对不同的用途应用不同的存储引擎

 

搜索方面:NDBCluster

web统计数据 :Flat file

金融事务- InnoDB
Session数据 - MyISAM or NDBCluster
本地计算数据 - HEAP
字典索引 - MyISAM

 

 

原文地址《MySQL Storage Engines 》。

2
0
分享到:
评论
1 楼 samana 2009-04-16  
mark一下

在笔者曾经参与的国外某电信厂商的项目中,由于需要用到事务,所以应用了InnoDB

相关推荐

Global site tag (gtag.js) - Google Analytics