MySQL数据库引擎(MyIsAm和InnoDB)

一、数据库引擎

  • 存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。
  • 存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。
  • MySQL5.5版本之后默认InnoDB,之前是MyIsAm。

PS
设置引擎语句:

create table [表名]
(

)
engine=innodb;

查询建表语句:

show create table [表名];

查询支持引擎语句:

show engines;

二、InnoDB

InnoDB是一种兼顾高可靠性和高性能的通用存储引擎,在MySQL5.5之后,InnoDB是默认的MySQL存储引擎。

特点

  • DML(增删改)操作遵循ACID模型(事务的四大特性:原子性、一致性、隔离性、持久性),支持事务;
  • 行级锁,提高并发访问性能;
  • 支持外键FOREIGN KEY约束,保证数据的完整性和正确性;

文件
xxx.ibd: xx代表的是表名,innoDB引擎的每张表都会对应这样一个表空间文件,存储该表的表结构(frm、sdi)、数据和索引。参数: innodb_file_per_table

请添加图片描述

三、MyIsAm

MylSAM是MySQL早期的默认存储引擎。

特点

  • 不支持事务,不支持外键
  • 支持表锁,不支持行锁访问速度快
  • 访问速度快

文件

  • XXx.sdi:存储表结构信息
  • XXX.MYD:存储数据
  • XXX.MYI:存储索引
    在这里插入图片描述

四、MyIsAm和InnoDB的区别

在这里插入图片描述

  • InnoDB有三大特性,分别是事务、外键、行级锁,这些都是MyIsAm不支持的

  • InnoDB是聚簇索引,MyIAm是非聚簇索引

  • InnoDB不支持全文索引,MyIAm支持

  • InnoDB支持自增和MVCC模式的读写,MyIAm不支持

  • MyIsAM的访问速度一般InnoDB快,差异在于innodb的mvcc、行锁会比较消耗性能,还可能有回表的过程(先去辅助索引中查询数据,找到数据对应的key之后,再通过key回表到聚簇索引树查找数据)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值