mysql表的存储引擎种类

表 存储引擎种类:

04aa884ab04a3f3e1a4175179cd2b7133bd.jpg

MyISAM结构:

c703160ffd51e805c60b567731626f2e75c.jpg

.frm文件:存储表数据定义、表结构

.MYD文件:存储表数据行

.MYI文件:存储表的索引,存储在b+tree里面

MyISAM存储引擎结构:

c93b3e1eeb239de1a44ad9482bc90fdb7da.jpg

根据col=49,根据b+tree快速定位到49,获取磁盘指针(values)0X90,从而获取表数据;

InnoDB结构存储引擎:必须需要有主键,为啥?

044693733508990e66323da3387a715e1fd.jpg

.ibd文件:索引文件和数据行合并 

62c1916cd2af6c44367590587314fd75bec.jpg

MyISAM和InnoDB区别:

MyISAM:索引所在磁盘指针

InnoDB:索引所在行其他字段存储

聚集索引:索引和数据在一起

9734d453e3f1ef39fba0bfd6f2fed0e9da4.jpg

 

非聚集索引:从一个文件去获取另一个文件,索引和数据没有在一起

694eb62fc122d86e83b771847ac08dc0259.jpg

问题:

InnoDB结构存储引擎:必须需要有主键,为啥?

如果InnoDB表没有主键,mysql会从表中寻找一个可以唯一标识的主键,

如果找不到,他会生成默认列(隐藏列)。来维护数据。

 

UUID:长串字符串,占有存储空间,比较慢等 

为何使用自增主键?

后面大于前面,一次追加,满足叶子节点

 

联合索引的底层结构:

f0f393e56816dc36a06495e36483d5ac3c4.jpg

 

小的放左边,相同的比较下面的参数。

 

 

转载于:https://my.oschina.net/u/3915790/blog/3102123

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值