MySQL 中 Myisam 与 innodb区别

MySQL 有多种存储引擎,下面我们先来看看最常用的几种

特点MyisamBDBMemoryInnoDBArchive
存储限制没有没有64TB没有
事务安全×××
锁机制表锁页锁表锁行锁行锁
B树索引×
哈希索引×××
全文索引××××
集群索引××××
数据缓存×××
索引缓存××
数据可压缩×××
空间使用N/A非常低
内存使用中等
批量插入的速度非常高
支持外键××××

以上就是几种存储引擎的特点对比!

其中我们开发中最常用的是 MyISAM 和INNODB

Myisam是Mysql的默认存储引擎。当create创建新表时,未指定新表的存储引擎时,默认使用Myisam。每个MyISAM在磁盘上存储成三个文件。文件名都和表名相同,扩展名分别是.frm(存储表定义)、.MYD (MYData,存储数据)、.MYI (MYIndex,存储索引)。数据文件和索引文件可以放置在不同的目录,平均分布io,获得更快的速度。
InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比Myisam的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。

使用场景

选择标准:根据应用特点选择合适的存储引擎,对于复杂的应用系统可以根据实际情况选择多种存储引擎进行组合。

下面是常用存储引擎的适用环境:
MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一;我们的日志表,文章表等
InnoDB:用于事务处理应用程序,具有众多特性,包括ACID事务支持。比如账户表,跟赠送相关场景,订单等
Memory:将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问。比如将存储 session 数据,不过目前session基本上都存在redis或者memcache上!
Merge:允许MySQL DBA或开发人员将一系列等同的MyISAM表以逻辑方式组合在一起,并作为1个对象引用它们。对于诸如数据仓储等VLDB环境十分适合。


释疑:

  1. 什么是页锁?
    一次锁定相邻的一组记录。因为表级锁速度快,但冲突多,行级冲突少,但速度慢。所以取了折衷的页级

总结2个存储引擎的区别:MyiSam 重查询,innodb重安全!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值