MySQL下的存储引擎

一、什么是存储引擎?

存储引擎是MySQL中基于表提供的访问文件的一种机制。对于MySQL来说,它提供了多种类型的存储引擎,我们可以根据对数据处理的需求,选择不同的存储引擎,从而最大限度的利用MySQL强大的功能。

二、分类

InnoDB存储引擎

①是windows下MySQL数据库默认的存储引擎。

②支持事务、支持行锁、支持事务安全表(ACID)。

支持外键,在存储表中的数据时,每张表都是按照主键的顺序进行存方放,如果在定义表时没有指定主键,则InnoDB会为每一行生成一个6字节的rowid,并以此作为主键。

④不支持全文索引。

注:行锁-》有前提,只有出现在以索引的方式查找时,进行行锁。对于非索引项(当where条件没有加主键时)加的依旧是表锁。

★适合于需要事务支持、外键约束、自动灾难恢复、大量updata的表中。

MyISAM存储引擎

①是Linux下MySQL数据库默认的存储引擎。

②支持全文索引、表锁、压缩表、空间数据索引。

③不支持事务、不支持外键。

④当我们建立一个MyISAM引擎的表时,本地磁盘会生成三个文件。分别为:

表名.FRM:用来存储建表的信息

数据文件名.MYD:存储数据(MYData)

索引文件名.MYI:存储索引(MYIndex)

注:表锁-》如果现在要进行select操作,系统默认就会加读锁。

***********************************************

* 读锁:指不允许外界进行write操作。 *

* 写锁:指不允许外界进行read和write操作。 *

***********************************************

★适合在选择密集型(筛选速度快)和插入密集型(允许同时插入)的表中使用。

MEMORY存储引擎

①要求存储在MEMORY数据库表里的数据使用的长度是不变的,所以不支持test、blob字段。

②数据存放在内存中,速度快。

★适合存放临时表、目标数据小且被频繁使用的表。

ARCHIVE存储引擎

①archive是归档的意思,只支持select和insert。

★压缩型,有很好的压缩机制,使用了zlib压缩库,在记录被请求时会实时压缩,经常用来当仓库使用。适用于日志文件。

三、总结

针对每个存储引擎其特点对比如下:

功能   /   存储引擎类型InnoDB MyISAMMEMORY ARCHIVE
存储限制 64TB256TBRAMnone
支持事务yesnonono
支持全文索引noyesnono
支持数索引yesyesyesno
支持哈希索引nonoyesno
支持数据缓存 yesnoN/Ano
支持外键yesnonono

不同的存储引擎有不同的特点,在选择存储引擎时,应该根据需求,使用合适的存储引擎,从而提高整个数据库的性能。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值