mysql存储引擎的使用场景,说一下mysql中存储引擎的使用场景

MyISAM

不支持事务,适用于选择密集型,插入密集型, mysql 默认的引擎

该引擎基于ISAM,除了提供ISAM所没有的索引和字段管理等大量功能

MyISAM还使用一种表锁机制来优化多个并发读写操作,但需要经常运行OPTIMIZE TABLE命令,来恢复被更新机制

所浪费的空间,否则碎片也会随之增加,最终影响数据访问性能。

还有一些有用的扩展,例如用来修复数据库文件的MyISAM Chk工具和用来恢复浪费空间的 MyISAM Pack工具

MyISAM强调了快速读取操作,主要用于高负载的select,这可能也是MySQL深受Web开发的主要原因:在Web开发中

进行的大量数据操作都是读,所以大多数虚拟主机提供商和Internet平台提供商(Internet Presence Provider

,IPP)只允许使用MyISAM格式。

MyISAM类型的表支持三种不同的存储结构:静态型、动态型、压缩型。

静态表(默认的存储格式) 表中的字段都是非变长字段,这样每个记录都是固定长度的,这样存储

优点:非常迅速,易缓存,出现故障容易恢复

缺点:占用的空间通常比动态表多。静态表在数据存储时会根据列定义的宽度定义补足空格,但是在访问的时候并

不会得到这些空格,这些空格在返回给应用之前已经去掉。同时需要注意:在某些情况下可能需要返回字段后的

空格,而使用这种格式时后面到空格会被自动处理掉。

动态表 包含变长字段,记录非固定长度的

优点:占用空间较少

缺点:频繁更新删除记录会产生碎片,需要定期执行OPTIMIZE TABLE或myisamchk -r改善性能,并且出现故障的时

候恢复相对比较困难

压缩表 由myisamchk工具创建,占据非常小空间,因为每条记录都是被单独压缩,所以只有非常小的访问开支

InnoDB

适用于更新密集型,支持事务,自动灾难恢复,行锁,外键

该存储引擎为MySQL表提供了ACID事务支持、系统崩溃修复能力和多版本并发控制(即MVCC Multi-Version

Concurrency Control)的行锁

支持自增长列(auto_increment),自增长列的值不能为空,如果在使用的时候为空则自动从现有值开始增值,如

果有但是比现在的还大,则直接保存这个值

支持外键(foreign key) ,外键所在的表称为子表而所依赖的表称为父表。

该引擎在5.5后的MySQL数据库中为默认存储引擎。

标签:存储,mysql,外键,空格,引擎,MyISAM,MySQL

来源: https://blog.csdn.net/qq_42630887/article/details/97672188

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值