MySQL学习笔记:MySQL的索引你了解多少?

本文主要介绍MySQL索引相关设计和优化情况,帮助各位小伙伴在使用MySQL过程中更加得心应手。
摘要由CSDN通过智能技术生成

1 什么是索引

  索引是高效获取数据的排好序数据结构

2 MySQL的存储引擎

  在使用索引之前,先了解下MySQL的存储引擎,存储引擎是数据库的底层软件组件,用于存储、检索、更新和管理数据。

2.1 MySQL有哪些存储引擎

  我们可以通过下面的命令来查看MySQL都支持哪些存储引擎。

show engines;

  查询结果如图:
在这里插入图片描述
  通过查询发现,MySQL默认存储引擎是InnoDB(截图中MySQL使用的版本是8.0.26),据了解,在MySQL 5.5版本之前默认的存储引擎是MyISAM,5.5版本及以后默认的存储引擎是InnoDB,可见InnoDB引擎的优势。

2.2 MySQL数据存储方式

  MySQL的数据是使用硬盘来进行存储的,我们可以通过下面的命令来查看MySQL的数据具体存储位置。

show variables like 'datadir';

  查询结果如图:
在这里插入图片描述
  进入目录后双击想要想查看的目录(对应数据库),我们可以看到里边存储着.ibd文件、.MYD文件、.MYI文件、.sdi文件(上文提到,我目前使用的MySQL的版本是8.0)如下图:
在这里插入图片描述
  各位小伙伴查询之后可能和我的不一样,比如还有.frm文件等,那是因为使用的MySQL版本不一致,工作中使用的还是以5.6和5.7版本的居多,在8.0版本中.frm文件已经不存在了。

2.3 MyISAM和InnoDB的区别

  在实际工作中,常用的存储引擎就是InnoDB和MyISAM,那么接下来我们看下两者的区别(以5.7版本为例)。

InnoDB MyISAM
主键 必须有 可以没有
外键 支持 不支持
事务 支持 不支持
索引 聚集索引 非聚集索引
行表锁 支持表级锁、行级锁,默认行级锁 仅支持表级锁
存储文件 .frm文件,.idb文件 .frm文件,.MYD文件,.MYI文件

  也由此可见,InnoDB引擎中索引结构和数据是存放在一起,而MyISAM引擎中索引结构和数据是分开存放的。
补充:
  1)InnoDB中如果没有明确指定创建主键,默认会自动选择一个可以非空且唯一标识数据记录的列作为主键,不存在就生成一个隐含字段作为主键,字段长度为6个字节,类型为长整型;
  2)聚集索引:索引结构和数据存放在

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值