面试官:说一下mysql索引的实现

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 面试官:说一下mysql索引的实现

🍁 作者:知识浅谈,CSDN签约讲师,CSDN博客专家,华为云云享专家,阿里云星级博主

📌 擅长领域:全栈工程师、爬虫、ACM算法

💒 公众号:知识浅谈

🔥 联系方式vx:zsqtcc

🤞面试官:说一下mysql索引的实现🤞

正菜来了⛳⛳⛳


1. mysql索引的类型

按照类型分为 主键索引,普通索引,唯一索引,全文索引,联合索引。

按照索引的结构内容 分为聚簇索引和非聚簇索引。

2. mysql 索引的底层

索引的结构采用hash  ,红黑树,B+树等结构作为索引的结构。

hash:因为只适用于等值查询,所以不能范围查询,其次如果冲突在一个节点,会在这个节点上有很多的记录,影响查询效率,当然如果分布均匀的花,等值查询效率还是很高的。

红黑树:是一种趋近于平衡二叉树结构的索引,根节点和叶子节点均为黑色,企业子节点是指的空节点,然后每次插入的时候节点为红色,如果不满足红黑树的要求需要进行移动变色,从根节点到每一个叶子节点经过的黑色节点个数相同。因为其二叉树结构,索引存储数据较多的话,层数就会比较高,IO变多就会影响查询效率。

B树:是一个多叉树,每个节点存储索引和数据,一个节点就是一个页,因为其多叉树的原因,存储数据就会层数变少,IO次数变少,适合用于索引的结构。

B+树:也是一个多叉树,只不过其非叶子节点知识存储了索引的数据,没有存储具体的数据内容,另外企业子节点存储的是数据内容和 索引结构,叶子节点之间有双向指针,所以在范围查询的时候效率还是很高的。

3. mysql索引使用

对于索引的使用,像是分辨较高的字段,经常用在where语句后边的字段,外键等这些比较适合使用索引。但是索引也不是能滥用的,因为索引也是一种物理结构,在数据的修改的时候对应的索引也要维护,索引索引也不可滥用。

4.MySQL索引失效

常见的索引失效有模糊查询like  中%放在了前边,对应的字段作为了函数的参数或者参与了表达式的运算,或者经历隐式转换。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4天前
|
SQL 存储 关系型数据库
MySQL索引及事务
MySQL索引及事务
15 2
|
4天前
|
存储 SQL 关系型数据库
完蛋!😱 我被MySQL索引失效包围了!
完蛋!😱 我被MySQL索引失效包围了!
|
4天前
|
SQL 存储 关系型数据库
MySQL的3种索引合并优化⭐️or到底能不能用索引?
MySQL的3种索引合并优化⭐️or到底能不能用索引?
|
4天前
|
存储 SQL 关系型数据库
MySQL索引,看这一篇就够了!
MySQL索引,看这一篇就够了!
|
4天前
|
Java 关系型数据库 MySQL
MySQL 索引事务
MySQL 索引事务
12 0
|
5天前
|
存储 关系型数据库 MySQL
MySQL第五战:常见面试题(下)
MySQL第五战:常见面试题(下)
|
5天前
|
关系型数据库 MySQL
MySQL第四战:视图以及常见面试题(上)
MySQL第四战:视图以及常见面试题(上)
|
5天前
|
存储 SQL 关系型数据库
MySQL 底层数据结构 聚簇索引以及二级索引 Explain的使用
MySQL 底层数据结构 聚簇索引以及二级索引 Explain的使用
21 0
|
3天前
|
关系型数据库 MySQL 数据库
docker MySQL删除数据库时的错误(errno: 39)
docker MySQL删除数据库时的错误(errno: 39)
10 0
|
1天前
|
关系型数据库 MySQL 数据库
mysql 设置环境变量与未设置环境变量连接数据库的区别
设置与未设置MySQL环境变量在连接数据库时主要区别在于命令输入方式和系统便捷性。设置环境变量后,可直接使用`mysql -u 用户名 -p`命令连接,而无需指定完整路径,提升便利性和灵活性。未设置时,需输入完整路径如`C:\Program Files\MySQL\...`,操作繁琐且易错。为提高效率和减少错误,推荐安装后设置环境变量。[查看视频讲解](https://www.bilibili.com/video/BV1vH4y137HC/)。
17 3
mysql 设置环境变量与未设置环境变量连接数据库的区别

推荐镜像

更多