Mysql数据库存储引擎

         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提供安全事务表,其他引擎都是非事务安全表。

     
特点
Myisam
BDB
Memory
InnoDB
Archive
存储限制
没有
没有
64TB
没有
事务安全
 
支持
 
支持
 
锁机制
表锁
页锁
表锁
行锁
行锁
B 树索引
支持
支持
支持
支持
 
哈希索引
 
 
支持
支持
 
全文索引
支持
 
 
 
 
集群索引
 
 
 
支持
 
数据缓存
 
 
 
支持
 
索引缓存
 
 
支持
支持
 
数据可压缩
支持
 
 
 
支持
空间使用
不消耗空间
内存使用
中等
非常高
批量插入速度
非常高
支持外键
 
 
 
支持
 

       
           根据不同的业务要求,在一个项目中可选择一种或者几种存储引擎混合使用。对于事务型的业务只能选择InnoDB或者BDB,如果要涉及行锁,

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

引擎。

你可能感兴趣的:(Mysql数据库存储引擎)