MySQL存储引擎比较

存储引擎是区别于其他数据库的一个重要特性。存储引擎的好处是,每个存储引擎都有各自的特点。开发人员能够根据具体的应用来选择合适的存储引擎。下面来对一些存储引擎简单的介绍。

InnnoDB引擎

InnoDb支持事务,其设计目标主要面向在线事务处理(OLTP)的应用。其特点是行锁设计,支持外键,支持非锁定读(即默认读取操作不会产生锁)

InnoDb引擎的表单独存放到一个独立的idb文件中。

InnoDb实现了SQL标准的4种隔离级别,还提供了插入缓冲,双写,自适应哈希索引,预读,多版本并发控制等技术来实现高并发,高性能和高可用的功能。

MyISAM引擎

MyISAM主要面向一些联机事务处理(OLAP)的数据库应用。不支持事务、表锁设计,支持全文索引。

MyISAM存储引擎表由MYD和MYI组成,MYD用来存放数据文件,MYI用来存放索引文件。

该存储引擎模式下,缓冲池只缓存索引文件,不缓冲数据文件

NDB存储引擎

NDB存储引擎是一个集群引擎。特点是数据全部放在内存中(也可以将非索引数据放在磁盘上),因此主键查找速度极快,并且通过添加数据存储节点可以线性地提高性能。

DNB存储引擎的连接操作是在数据库层完成的,而不是在存储引擎层完成的,因此复杂的连接操作需要巨大的网络开销。

Memory存储引擎

Memory存储引擎将表中的数据存放在内存中,如果数据库重启或发生崩溃,表中的数据都将消失。适合用于存储临时数据的临时表。

Memory存储引擎默认使用哈希索引,而不是B+树。并且不支持TEXT和BLOB列类型,只支持表锁,并发性能差。

Mysql数据库使用Memory存储引擎作为临时表来存放查询的中间结果集,如果中间结果集大于Memory引擎的表容量设置或者中间有TEXT和BLOB字段,则Mysql会把其转化到MyISAM引擎表而放到磁盘中。

Archive存储引擎

Archive存储引擎其设计目的主要是提供高速的插入和压缩功能,它的压缩比非常的高,非常适合存储归档数据。

使用行锁来实现高并发的插入操作,不支持事务。且支持INSERT和SELECT操作。

 

除此之外Mysql还有很多其他的存储引擎,包括Federated,Maria,Merge,CSV,Sphinx,Infobrght,XtraDB,PBXT,TokuDB,RethinkDB,InfiniDB,Aria,Groonga,OQGraph,Q4M,SphinxSE,Spider,VPForMySQL等等,他们都有各自的使用场景,感兴趣的可以留言。我会据需补充相关内容的。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值