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分布式内存

引擎。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值