深入学习索引

news/2024/7/7 20:38:19 标签: mysql, 数据库
1.索引的底层数据结构是什么?索引是如何实现的?

索引的底层数据结构是B+tree(多路树)

当设置了字段为索引以后,底层会将字段上的数据使用B+Tree的数据结构存储在索引文件里

2.索引的优缺点

优点:索引字段作为条件查询更快

缺点:添加、删除数据会改变表,也会改变索引文件里的数据结构

缺点的解决方案:少量的添加、删除就直接忽略,批量添加、删除之前可以把所有删除,批量操作后再把所有添加上

3.索引的分类

分类:

聚簇索引/聚集索引:主键索引

非聚簇索引/非聚集索引:唯一索引、普通索引、全文索引

4.聚簇索引与非聚簇索引的区别

聚簇索引:叶子节点上存放的是数据行的数据

非聚簇索引:叶子节点存放的是数据行的地址(拿到地址后,还要去找地址上的数据)

5.索引什么情况下会失效?

1、查询条件中包含or 2、like 通配符% 错误使用 3、联合索引最左匹配原则 4、索引列使用MySQL函数,索引失效 5、索引列存在计算,使用(+、-、*、/),索引失效 6、使用(!= 或者 < >,not in),导致索引失效 7、使用is null, is not null,导致索引失效 8、左连接、右连接关联字段编码不一致,索引失效 9、使用了select *,导致索引失效 10、order by使用,导致索引失效 11、group by 使用违反最左匹配原则,导致索引失效


http://www.niftyadmin.cn/n/5535218.html

相关文章

【字符串处理】【双指针】个人练习-Leetcode-777. Swap Adjacent in LR String

题目链接&#xff1a;https://leetcode.cn/problems/swap-adjacent-in-lr-string/description/ 题目大意&#xff1a;给两个字符串start, end&#xff0c;只包含XLR三种字符。可以进行一次操作将XL转换成LX或者将RX转换为XR&#xff0c;返回是否存在方法使得start能转换成end …

HX4004A-MFC 低噪声、稳压电荷泵DC/DC转换器芯片IC

一般描述 该HX4004A是一个低噪声开关电容电压倍。它产生一个调节输出电压从2.7V到4.5V的输入。低的外部零件数量(VIN和VOUT处一个飞行电容和两个小型旁路电容)使HX4004A非常适合小型电池供电应用。 该HX4004A具有热关断能力&#xff0c;可以生存从VOUT到GND的连续…

普通集群与镜像集群配置

目录 一. 环境准备 二. 开始配置集群 三. RabbitMQ镜像集群配置 四. 安装并配置负载均衡器HA 一. 环境准备 关闭防火墙和selinux&#xff0c;进行时间同步 主机名系统IP服务rabbitmq-1 Rocky_linux9.4 192.168.226.22RabbitMQ&#xff0c;MySQLrabbitmq-2Rocky_linux9.41…

Excel 中的元素定位:相对定位、绝对定位和混合定位

在Excel中&#xff0c;单元格引用有三种主要类型&#xff1a;相对定位、绝对定位和混合定位。 这些类型主要用于公式和函数中&#xff0c;决定在复制或拖动公式时引用如何变化。 1. 相对定位 相对定位指的是不带“$”符号的单元格引用&#xff0c;例如 A1。 这种引用方式在…

docker k8s

1、docker是什么&#xff1f; Docker是一个开源的应用容器引擎&#xff0c;将环境和程序一起打包给到 服务器运行的工具软件。 2、基础镜像base image是什么&#xff1f; 操作系统&#xff1a;用户空间、内核空间 阉割操作系统&#xff0c;利用其的用户空间&#xff08;因为…

1-5题查询 - 高频 SQL 50 题基础版

目录 1. 相关知识点2. 例题2.1.可回收且低脂的产品2.2.寻找用户推荐人2.3.大的国家2.4. 文章浏览 I2.5. 无效的推文 1. 相关知识点 sql判断&#xff0c;不包含null&#xff0c;判断不出来distinct是通过查询的结果来去除重复记录ASC升序计算字符长度 CHAR_LENGTH() 或 LENGTH(…

【leetcode82-91动态规划,91-95多维动态规划】

动态规划【82-91】 多维动态规划【91-95】

Docker Compose 安装以及命令的详细解析

Docker Compose 是一种用于定义和运行多容器Docker应用程序的工具。通过Compose&#xff0c;可以使用YAML文件来配置应用程序所需的所有服务&#xff0c;然后使用单个命令创建并启动所有服务。Docker Compose 提供了一种高效、简洁的方式来管理Docker容器和服务&#xff0c;使得…