mysql存储引擎

所谓的存储引擎,就是使用什么样的技术来存储数据。Mysql中提供有4种常见的存储引擎ISAM、MyISAM、InnoDB和Memory。

静态表和动态表

所谓的静态表和动态表,是根据行长是否确定来判断的。如果一个表的行长是固定的,那么就是静态表;反之,就是动态表。静态表的行读入速度是非常快的,因为长度固定,从基准地址开始,每隔一个固定的长度就可以取到下一条记录。而动态表的每行行长都可能不一样,所以每行行长都需要额外的空间记录,在读取之前需要先确定行长,所以动态表的读入速度不如静态表。

静态表的特点

读取速度非常快,容易缓冲,容易在崩溃后重建(记录的位置固定),不必调整(除非有一个占据很大空间的记录被删除,你想要释放磁盘空间),缺点是需要比动态表更多的磁盘空间。

动态表的特点


ISAM

该存储引擎是基于索引的访问,它不支持外键和事务,容错能力差,对一些二级制数据类型的移植性也不太好,访问速度一般。

MyISAM

该存储引擎是ISAM的增强类型,相比于ISAM,它增强了:

1.对二进制数据类型的移植性;

2.支持大文件(BLOB和TEXT);

3.容错能力改进;

4.更好和更快的auto_increment;

与ISAM一样,它也不支持外键和事务,读取速度很快。

InnoDB

该存储引擎能支持外键和事务,读取速度较慢。

Memory

该存储引擎部同于其他,它是将表格存储在内存这种易失性物理设备中,由于存在内存中,它的处理速度非常快。

选择存储引擎的策略

怎样去选择一个表的存储引擎这是根据实际的需要来完成的。
1.字段与数据类型
如果需要存储大数据(BLOG和TEXT),那么就要选择MyISAM、Memory或者InnoDB。
2.锁定功能
一般来说,数据库都提供了三种锁定功能:表锁定、块锁定和行锁定。MyISAM提供的是表锁定,在更新表的时候锁定表防止其他用户访问和更新,所以在用户非常多的时候,这会显得非常慢。而InnoDB则提供和最小粒度的行级锁。
3.创建索引的能力
不同存储引擎创建索引的技术不一样,有些存储引擎也不支持索引,比如说MEGER。
4.提供事务的能力
事务能够保证我们完成一系列操作并且在操作发生错误时提供回滚功能,只有InnoDB提供事务。
总的来说,现在一般使用的都是InnoDB和MyISAM。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值