美文网首页程序员
mysql存储引擎之MyISAM与INNODB

mysql存储引擎之MyISAM与INNODB

作者: petemper | 来源:发表于2019-01-17 14:44 被阅读4次

?xml version="1.0" encoding="UTF-8"?

mysql有多种存储引擎:

可以看到,有InnoDB、Memory、MyISAM、CSV、Archive等9种,

其中,Myisam与INNODB是mysql的两种比较重要的存储引擎,两种引擎的存储方式不同,导致性能不同,比如锁的级别、索引的使用等。那本文就介绍下两种存储引擎的不同点。

一、MYISAM

先说下ISAM。索引顺序存取方法(ISAM, Indexed Sequential Access Method)最初是IBM公司发展起来的一个文件系统,可以连续地(按照他们进入的顺序)或者任意地(根据索引)记录任何访问。    

它的数据结构类似于B+树,树比较矮,查找起来IO少,比较快。

在Mysql-3.23版本使用了ISAM算法。索引的数据结构见B+树。

而MYISAM是mysql后期版本基于ISAM的优化,也是B+树为索引结构,MyISAM索引文件和数据文件是分离的。相比于ISAM,MYisam有可移植性更好、能处理更大的文件、更好的处理自增操作的优点。

其特点如下表:

可以看到锁的级别是表、不支持事务等特性。

二、Innodb

innodb也是以B+树作为索引结构的。但是有很大不同。

第一个不同:Innodb的索引文件和数据文件是一体的,数据文件本身就是索引结构的一部分。

叶节点包含了完整的数据记录。这种索引叫做聚集索引。因为InnoDB的数据文件本身要按主键聚集,所以Innodb要求表必须有主键(Mysiam可以没有)。

第二个与MyISAM索引的不同是InnoDB的辅助索引data域存储相应记录主键的值而不是地址。

聚集索引这种实现方式使得按主键的搜索十分高效,但是辅助索引搜索需要检索两遍索引:首先检索辅助索引获得主键,然后用主键到主索引中检索获得记录.

其特点如下:

相关文章

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

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

  • 2018-03-19

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

  • mysql 事务学习

    1: mysql 存储引擎 主要包括 innodb ,myisam ,memory 等等 innodb 与 myi...

  • mysql(七)

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

  • mysql存储引擎

    MySQL 存储引擎概述 MySQL 5.0 支持的存储引擎包括 MyISAM、 InnoDB、 BDB、 MEM...

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

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

  • SQL 规范

    基础规范 表存储引擎必须使用InnoDB MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)...

  • MySQL 索引优化的指导性建议

    MySQL 提供 MyISAM 、 InnoDB 、 memory(heap) 等多种存储引擎。每种存储引擎对于索...

  • mysql存储引擎

    mysql存储引擎 innodb myisam 1. 查看存储引擎show engines; 2. innodab...

  • mysql的两种引擎

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

网友评论

    本文标题:mysql存储引擎之MyISAM与INNODB

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