MySql引擎

3 篇文章 0 订阅
2 篇文章 0 订阅

Mysql的引擎有好几种,其中Innodb和Myiasm最为常用

存储引擎在mysql里是插拔式的,
什么是插拔式?
所谓的插拔式就是可以配置的,我们在建表的时候,可以在建表语句上加上一句Enginee=Myiasm,就表示要建的表使用的存储引擎为Myiasm

从上面一点可以看出,mysql的存储引擎是表级别的,存储引擎是可以由第三方公司来开发,自mysql5.5以后,mysql默认的存储引擎为innodb

聚集索引与非聚集索引

所谓的聚集索引就是索引文件跟数据文件存放在同一个文件里
非聚集索引就是索引文件跟数据文件存放在不同的文件里
从下面的图片可以看到,Myiasm的表是有3个文件组成,其中frm文件是表定义文件,无论是innodb或者是myiasm,它们都有frm文件,myd文件是myiasm的数据文件,是用来存放数据的,myi是myiasm的索引文件,
ibd是innodb的数据和索引的存储文件
在这里插入图片描述
从存储引擎的索引存放格式来看,myiasm的每一个索引,其地址都是指向数据区所在的地址,而innodb则有点不一样,innodb里默认是以id作为主索引,就是当我们没有建id主键列的时候,innodb都会创建出一个隐藏的id主键列作为索引,在这个id主键列的索引树上,其叶子节点上保存着当前节点的数据,当我们建了一个name的非主键索引时,innodb会建一个name的索引树,然后在叶子节点的每个节点上保存的是id索引树的地址
所以当我们用非id作为索引时,innodb需要检索两遍,而myiasm自需要检索一遍,所以在读多写少的表可以用myiasm作为存储引擎
在这里插入图片描述

总结:

1、mysql的存储引擎是表级别的,可以在建表时加上Enginner = 引擎名称来指定表的存储引擎
2、Myiasm的索引是非聚集索引,innodb的索引是聚集索引
3、读多写少建议使用Myiasm存储引擎,写多读少建议使用innodb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啊狸的Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值