日常记录——MySQL—InnoDB和MyISAM区别

1.数据结构:InnoDB是将索引和数据存放在一起的,MyISAM是将索引文件和数据文件分开存放。
使用工具创建两个表,一个存储引擎为InnoDB的innodb表,一个存储引擎为MyISAM的myisam表在这里插入图片描述
在这里插入图片描述
观察data文件,可发现InnoDB存储引擎有两个文件.frm(表定义)和.ibd(数据+索引),MyISAM有三个文件.frm(表定义)和.MYD(数据)和.MYI(索引)。
在这里插入图片描述
2.索引:同样索引结构都选择B+Tree,但InnoDB使用聚簇索引(叶子节点存数据或主键值),MyISAM是非聚簇索引(叶子节点存指针)。
基础结构:
在这里插入图片描述
具体叶子节点:
MyISAM:
MyISAM
InnoDB:
在这里插入图片描述
MyISAM支持全文索引,InnoDB在5.6后支持。
3.事务:InnoDB支持事物操作。MyISAM不支持事物。
4.锁:InnoDB支持行、表级锁(不命中索引仍为表级锁)。MyISAM支持表级锁。
5.主键:InnoDB表必须有主键(用户没有指定的话会自己找或生产一个主键)。MyISAM可以没有主键。
6.外键:InnoDB支持外键,MyISAM不支持外键。
7.count:InnoDB 不保存表的具体行数,扫描表。MyISAM 用一个变量保存了整个表的行数,查询表行数速度很快。
8.delete:InnoDB 执行delete表时,是一行一行的删除。MyISAM执行delete表时,先drop表,然后重建表。
9.场景
InnoDB:事务,insert,delete,uodate操作多。
MyISAM:select多。
*默认就InnoDB吧,MySQL5.6以后默认就innoDB作为表存储引擎。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值