存储引擎

MySQL支持多种存储引擎,针对不同情况,可以选择使用不同的存储引擎来提高效率或者提供灵活的存储。等等,什么是存储引擎?

MySQL中的,数据被各种不同的技术存储在文件或内存中,并利用不同的存储机制,索引机制,锁定水平等等来提供广泛而不同的功能。而这些不同的技术以及其相关功能在MySQL中被称为存储引擎。

 

MySQL支持的存储引擎有MyISAM, InnoDB, BDB, Memory Mergy, EXAMPLE, NDB,Cluster, ARCHIVE, CSV, BLACKHOLE, FODRATED等。InnoDBBDB提供事务安全表,其他存储引擎都是非事务安全表。

 

特点

MyISAM

BDB

Memory

InnoDB

Archive

存储限制

64TB

事务安全

 

支持

 

支持

 

锁机制

表锁

页锁

表锁

行锁

行锁

B树索引

支持

支持

支持

支持

 

Hash索引

 

 

支持

支持

 

全文索引

支持

 

 

 

 

集群索引

 

 

 

支持

 

数据缓存

 

 

支持

支持

 

索引缓存

支持

 

支持

支持

 

数据可压缩

支持

 

 

 

支持

空间使用

N/A

非常低

内存使用

中等

批量插入速度

非常高

支持外键

 

 

 

支持

 

 

常用引擎的简介:

(一)MyISAMMySQL的默认引擎(MySQL5.5以后默认引擎为InnoDB)。不支持事务,不支持外键,但是插入,访问速度快。对事务完整性没有要求或者插入,查询语句为主的应用可以选择这种引擎。每个MyISAM在磁盘上存储成3个文件,其中文件名和表名都相同,但是扩展名分别为:.frm(存储表定义)MYD(MYData,存储数据)MYI(MYIndex,存储索引)数据文件和索引文件可以放置在不同的目录,平均分配IO,获取更快的速度。

(二)InnoDB:提供了具有提交,回滚和崩溃恢复的事务安全,事务型数据库的首选引擎。但是对比MyISAMInnoDB写的操作效率差一点而且会占用更多的磁盘空间以保留数据和索引。

(三)Memorymemory使用存在内存中的内容来创建表,因为它的数据是存储在内存中的并且默认使用Hash索引,所以它拥有极快的插入,查询,更新速度。但是相对的会占用与数量成正比的内存空间,而且一旦服务器关闭,所以数据就会丢失,而表是存储在一个.frm文件里所以不会丢失。

(四)MergeMerge实际上是一组MyISAM表的组合,Merge表中并没有数据。所有对Merge表的操作都会落实到内部的MyISAM表。在超大规模的数据存储很有用。

 

另外的引擎简介:

(一)Archive:非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差

(二)Federated:将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用

(三)Cluster/NDB:高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用

(四)CSV:逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个.CSV文件。这是一种普通文本文件,每个数据行占用一个文本行。CSV存储引擎不支持索引。

(五)BDB:源自Berkeley DB,事务型数据库的另一种选择,支持COMMITROLLBACK等其他事务特性

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

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值