美文网首页数据库
MySQL引擎:InnoDb和MyISAM

MySQL引擎:InnoDb和MyISAM

作者: 阿臻同学 | 来源:发表于2019-10-01 21:42 被阅读0次

综述

在MySQL中,InnoDB和MyISAM应该是最广为人知的2种存储引擎。
对二者的特点做一个简单的整理。

InnoDB

  • 现阶段MySQL默认的存储引擎。

  • 采用MVCC来支持高并发

    Multi-Version Concurrency Control 多版本并发控制。
    MVCC会保存某个时间点上的数据快照。这意味着事务可以看到一个一致的数据视图,不管他们需要跑多久。这同时也意味着不同的事务在同一个时间点看到的同一个表的数据可能是不同的。

  • 实现了四个标准的隔离级别

  • 通过间隙锁防止幻读

    不仅锁定涉及的行,还会对索引中的间隙进行锁定。

  • 基于聚集索引建立表 ,二级索引必须包含主键列

  • 文件结构

    文件名 描述
    .frm 记录表结构的文件
    .idb 索引+数据:
    按照B+树索引组织文件,且数据保存在B+树的叶子节点中
  • 必须有主键,没有的话会自动生成,且建议使用自增整型:

  • 整型:占用内存小、比较速度快

  • 自增:有序,能降低B+树内部调整的次数,提高效率
    (新节点序号一定比老节点大,就不会插入到已存在的节点之间)

MyISAM

  • 5.1版本以前默认的引擎,逐渐被InnoDB取代

  • 不支持并发和行级锁

  • 对整张表加锁:

    锁类型 描述
    读取 共享锁
    支持并发插入(在读取的时候可以往表中插入数据)
    写入 排它锁
  • 文件结构

    文件名 描述
    .frm 记录表结构的文件
    .MYD 数据文件
    .MYI 索引文件
    在B+树的叶子节点通过指针指向.MYD文件中的数据

相关文章

  • 2018-03-19

    mysql MyISAM引擎和InnoDB的介绍 1、MyISAM MyISAM是MySQL的默认存储引擎,基于...

  • mysql(七)

    MySQL存储引擎-innodb 查看存储引擎 innodb和myisam的物理区别 innodb 核心特性 MV...

  • 引擎 | ARCHIVE

    mysql常用引擎MyISAM和InnoDB MyISAM:插入快 查询快 InnoDB:修改快 支持事务 ARC...

  • MySQL引擎选择

    目前广泛使用的是MyISAM和InnoDB两种引擎: MyISAM MyISAM引擎是MySQL 5.1及之前版本...

  • mysql的两种引擎

    MySQL两种存储引擎: MyISAM和InnoDB 简单总结 MyISAM是MySQL的默认数据库引擎(5.5版...

  • MYSQL自带数据引擎-MyISAM和InnoDB

    1.Ubuntu安装mysql的系列Mariadb,自带引擎命令 引擎MyISAM和InnoDB区别MyISAM:...

  • MySQL学习日记(十一)-技术问答

    一、MySQL主要存储引擎MyISAM和InnoDB的区别? 1、 存储结构 MyISAM:每个MyISAM在磁盘...

  • 系统原理-乐观锁与悲观锁

    InnoDB与MyISAM Mysql 在5.5之前默认使用 MyISAM 存储引擎,之后使用 InnoDB 。查...

  • Mysql-InnoDB引擎的行锁

    前言: Mysql常用的引擎有MYISAM和InnoDB,而InnoDB是Mysql5.1版本之后默认的引擎(之前...

  • MySQL常用的两种存储引擎

    mysql有两种存储引擎:InnoDB和MyISAM。mysql5.5之前是默认MyISAM,mysql5.5之后...

网友评论

    本文标题:MySQL引擎:InnoDb和MyISAM

    本文链接:https://www.haomeiwen.com/subject/mtclpctx.html