MySQL存储引擎索引实现解析

MySQL存储引擎是表的存储引擎
1.Myisam存储引擎
在这里插入图片描述
1.1.Myisam存储引擎底层表的存储结构如下

  • user.frm 文件存储表的表结构
  • user.MYD 文件存储表的数据行记录
  • user.MYI 文件存储表的索引字段

在这里插入图片描述
**
1.2 Myisam底层SQL查询过程**

  • 假如查找col1=49,先判断col1是否是索引字段,如果是索引字段,
    就在MYI文件查找磁盘文件地址针,根据B+树的特点查找磁盘文件地址针,
    并一次性定位到MYD文件的行元素

在这里插入图片描述
2.InnoDB存储引擎
在这里插入图片描述 *
2.1.InnoDB存储引擎底层表的存储结构如下*

  • user.frm 文件存储表的表结构
  • user.ibd 文件存储表的数据和索引

在这里插入图片描述
.聚集索引:索引跟数据放在一起, InnoDB主键索引就是一个聚集索引

自增主键与UUID的对比

  • 自增ID是在设计表时将id字段的值设置为自增的形式,这样当插入一行数据时无需指定id会自动根据前一字段的ID值+1进行填充。在MySQL数据库中,可通过sql语句AUTO_INCREMENT来对特定的字段启用自增赋值, 优点是数据库自动编号,速度快,而且是增量增长,按顺序存放,对于检索非常有利,数字型,占用空间小,易排序,在程序中传递也方便;
  • UUID含义是通用唯一识别码 (Universally Unique Identifier),指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成的API。换句话说能够在一定的范围内保证主键id的唯一性。缺点是uuid之间比较大小相对数字慢不少, 影响查询速度。uuid占空间大, 如果你建的索引越多, 影响越严重
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值