您的位置:首页 > 数据库 > MySQL

Mysql数据库存储引擎

2015-07-15 22:01 731 查看
         Mysql中有以下几种引擎

 

      1.MyISAM Mysql5.5之前的默认数据库引擎,最为常用。拥有较高的插入,查询速度,但不支持事务。

      2.InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定, MySQL 5.5起成为默认数据库引擎。BDB源自Berkeley 

DB,事务型数据库的另一种选择,支持COMMIT和ROLLBACK等其他事务特性,BDB被包含在为支持它的操作系统发布的MySQL-Max二进

制分发版里。

      3.Memory所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且

其内容会在Mysql重新启动时丢失。
     
      4.Merge将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用,Mysql Merge表有点类似于视图。

      
      5.Archive非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其

对查询的支持相对较差。

      
      6.Federated将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用,通过这个引擎可以实现

类似Oracle 下DBLINK的远程数据访问功能。
      
     7.Cluster/NDB高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求

高的应用

     
     8.CSV:逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个.CSV文件。这是一种普通文本文

件,每个数据行占用一个文本行。CSV存储引擎不支持索引。

     9.BlackHole :黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继。

     
     10.EXAMPLE存储引擎是一个不做任何事情的存根引擎。它的目的是作为MySQL源代码中的一个例子,用来演示如何开始编写一

个新存储引擎。同样,它的主要兴趣是对开发者。EXAMPLE存储引擎不支持编索引。

    MySql数据库引擎选型

     MySQL支持多种存储引擎,在处理不同类型的应用时,可以通过选择不同的存储引擎提高应用的效率,或者提供灵活的存

储。包括:MyISAM、InnoDB、BDB(BerkeleyDB)、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE、CSV等,其中InnoDB、

BDB提供安全事务表,其他引擎都是非事务安全表。

     
[align=left]特点[/align]
[align=left]Myisam[/align]
[align=left]BDB[/align]
[align=left]Memory[/align]
[align=left]InnoDB[/align]
[align=left]Archive[/align]
[align=left]存储限制[/align]
[align=left]没有[/align]
[align=left]没有[/align]
[align=left]有[/align]
[align=left]64TB[/align]
[align=left]没有[/align]
[align=left]事务安全[/align]
[align=left] [/align]
[align=left]支持[/align]
[align=left] [/align]
[align=left]支持[/align]
[align=left] [/align]
[align=left]锁机制[/align]
[align=left]表锁[/align]
[align=left]页锁[/align]
[align=left]表锁[/align]
[align=left]行锁[/align]
[align=left]行锁[/align]
[align=left]B树索引[/align]
[align=left]支持[/align]
[align=left]支持[/align]
[align=left]支持[/align]
[align=left]支持[/align]
[align=left] [/align]
[align=left]哈希索引[/align]
[align=left] [/align]
[align=left] [/align]
[align=left]支持[/align]
[align=left]支持[/align]
[align=left] [/align]
[align=left]全文索引[/align]
[align=left]支持[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left]集群索引[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left]支持[/align]
[align=left] [/align]
[align=left]数据缓存[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left]支持[/align]
[align=left] [/align]
[align=left]索引缓存[/align]
[align=left] [/align]
[align=left] [/align]
[align=left]支持[/align]
[align=left]支持[/align]
[align=left] [/align]
[align=left]数据可压缩[/align]
[align=left]支持[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left]支持[/align]
[align=left]空间使用[/align]
[align=left]低[/align]
[align=left]低[/align]
[align=left]不消耗空间[/align]
[align=left]高[/align]
[align=left]低[/align]
[align=left]内存使用[/align]
[align=left]低[/align]
[align=left]低[/align]
[align=left]中等[/align]
[align=left]高[/align]
[align=left]非常高[/align]
[align=left]批量插入速度[/align]
[align=left]高[/align]
[align=left]高[/align]
[align=left]高[/align]
[align=left]低[/align]
[align=left]非常高[/align]
[align=left]支持外键[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left]支持[/align]
[align=left] [/align]
       
           根据不同的业务要求,在一个项目中可选择一种或者几种存储引擎混合使用。对于事务型的业务只能选择InnoDB或者BDB,如果要涉及行锁,

只能选择InnoDB,如果读的量比写的量大很多,可以采用InnoDB和MyISAM混合使用。在高可用时,读写相差不大的系统,一般采用NDB分布式内存

引擎。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: