mysql的存储引擎MyISAM和InnoDB

MyISAM和InnoDB

区别:

MyISAM 不支持事物,只支持表级锁,不支持外键,物理结构(三个文件),非聚簇索引。

InnoDB 支持事务和行级锁,支持外键,物理结构(两个文件),聚簇索引。

如果系统读多写少,对原子性要求低,那么MyISAM最好的选择。且MyISAM恢复速度快,可直接用备份覆盖恢复。

如果系统读少写多的时候,尤其是并发写入高的时候,InnoDB就是首选了。

因为写入过程,需要加锁,MyISAM表级锁会使写入性能变差。

文件结构:

MyISAM

.frm文件:与表相关的元数据信息都存放在frm文件,包括表结构的定义信息等。

.myd文件:用于存储myisam表的数据

.myi文件:用于存储myisam表的索引相关信息

InnoDB

.frm文件:与表相关的元数据信息都存放在frm文件,包括表结构的定义信息等。

.ibd文件和.ibdata文件:

这两种文件都是存放InnoDB数据的文件,之所以用两种文件来存放innodb的数据,是因为innodb的数据存储方式能够通过配置来决定是使用共享表空间存放存储数据,还是用独享表空间存放存储数据。

索引类型

非聚簇索引:指b+树叶节点的数据存放的是记录的地址,通过这个地址,读取相对应的数据记录。

聚簇索引:索引叶子节点中存放的是数据本身,索引也是数据。

总结

从历史上来说MyISAM历史更加久远,所以InnoDB性能也就更好了,在这我们需要考虑当我们修改数据库中的表的时候,数据库发生了变化,那么他们的主键的地址也就发生了变化,这样你的MyISAM的主索引和辅助索引就需要重新建立索引。而InnoDB只需要改变主索引,因为它的辅助索引是存主键的,所以这样考虑InnoDB更加高效。

现在主流的mysql索引是InnoDB。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值