mysql存储引擎mysam和InnoDB

本文对比了MySQL的两个主要存储引擎MyISAM和InnoDB。MyISAM支持全文索引、B树索引,数据存储速度快,但不支持事务。InnoDB则是默认存储引擎,提供事务支持、行级锁和外键约束,适合高并发场景。此外,InnoDB还有缓冲管理和在线热备份功能。
摘要由CSDN通过智能技术生成

mylsam

     使用mysam存储引擎,会在磁盘中存储成三个文件

  1. frm文件:存储表的定义数据。
  2. MYD文件:存放具体记录的数据。
  3. MYI文件:存储索引。仅保存记录所在页的指针,索引的结构是B+树结构。

     查询时通过MYI的B+树结构来查找记录。支持全文索引、B树索引和数据压缩

支持数据的类型也有三种:

    静态固定长度表

            这种方式的优点在于存储速度非常快,容易发生缓存,而且表发生损坏后也容易修复。缺              点是占空间。这也是默认的存储格式。

    动态可变长表

          优点是节省空间,但是一旦出错恢复起来比较麻烦。

    压缩表

        上面说到支持数据压缩,说明肯定也支持这个格式。在数据文件发生错误时候,可以使用               check table工具来检查,而且还可以使用repair table工具来恢复。

不支持事务,存储速度快,如果你的读写操作允许有错误数据的话,只是追求速度,可以选择这个存储引擎。

InnoDB

    InnoDB是默认的数据库存储引擎,他的主要特点有:

          (1)可以通过自动增长列,方法是auto_increment。

          (2)支持事务。默认的事务隔离级别为可重复度,通过MVCC(并发版本控制)来实现                         的。

          (3)使用的锁粒度为行级锁,可以支持更高的并发;

          (4)支持外键约束;外键约束其实降低了表的查询速度,但是增加了表之间的耦合度。

          (5)配合热备工具可以支持在线热备份;

          (6)缓冲管理,通过缓冲池,将索引和数据全部缓存起来,加快查询的                    速度;

          (7)数据的物理组织形式是聚簇表。所有的数据按照主键来组织。数据和索引放在一块,                     都位于B+树的叶子节点上;

    InnoDB的存储表和索引的两种形式:

          (1)共享表空间存储:所有的表和索引存放在同一个表空间中。

          (2)多表空间存储:表结构放在frm文件,数据和索引放在IBD文件中。分区表的话,                             每个分区对应单独的IBD文件,分区表的定义可以查看我的其他文章。使用分区表的                       好处在于提升查询效率。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值