Mysql中的那些索引

news/2025/3/14 22:10:20/

主键索引

表的主键使用的就是主键索引,一张表只能有一个主键索引,主键索引不能为null,且不能重复。

主键索引存在于B+树的非叶子节点和叶子节点,叶子节点存放的还有数据。

非主键索引

非主键索引也叫二级索引,包括有唯一索引,普通索引,前缀索引、全文索引。

每新建一个二级索引,就是新建一个索引B+树,非叶子节点存放索引列的值,叶子节点存放索引列的值和主键值。大大提高查询效率,空间换时间。

惊天大秘密——主键索引和非主键索引不存储在一个B+树里面-CSDN博客

唯一索引:一张表可以有多个唯一索引,该索引的列不能重复,但可以为null。

普通索引:只是为了增加查询效率,一张表允许有多个普通索引,可以重复可以为null。

前缀索引:适用于字符串类型的数据,相比普通索引,建立的索引数据更小。

全文索引:适用于检索大文本数据中的关键信息。

聚簇索引和非聚簇索引

聚簇索引:B+树的叶子节点即存放数据又存放索引,InnoDB中的主键索引就是聚簇索引。

查询速度快,因为索引结构和数据放在一起,一次就可以查回数据。

修改代价大,因为索引和数据放在一起,修改时索引就会被修改。

非聚簇索引:B+树的叶子节点只存放索引,InnoDB中的非主键索引就是非聚簇索引。

查询慢,叶子节点存放主键索引,在查到主键索引值之后可能还要回表去表里再查下数据。比聚簇索引多一次I/O操作,所以会查询慢。注意如果只查索引,不用去回表。所以回表不是必须的。

修改快,叶子节点不存放数据,所以修改快。

覆盖索引和联合索引

覆盖索引:如果需要查询的列正好在索引里,就不用回表,这种情况就是覆盖索引。

联合索引:使用表中的多个字段创建一个索引,放在同一个索引B+树中。
 

联合索引的最左前缀原则:假设联合索引(a、b、c),匹配顺序只有a,ab,abc的时候才可以命中索引,即where a=1 and b=2 and c=3,中的abc顺序。

索引下推

 索引下推(Index Condition Pushdown,简称 ICP)-CSDN博客


http://www.ppmy.cn/news/1405405.html

相关文章

【Golang星辰图】数据处理的航海家:征服数据海洋的航行工具

数据处理的建筑师:用Go语言中构建稳固的数据分析建筑物 前言 数据处理和分析是现代计算机科学中的关键任务之一,而Go语言作为一门现代化的编程语言,也需要强大的数据处理和分析库来支持其在这一领域的应用。本文将介绍几款优秀的数据处理和…

CSS基础选择器 小案例复习(画三个小盒子)

(大家好,前面我们学习了基础的选择器,俗话说:温故而知新。所以今天我们将通过小案例来复习前面学过的小知识点。另,十分感谢大家对我文章的支持❤️) 通过这个案例复习两个地方: 类选择器的使用…

SQLite中的隔离(八)

返回:SQLite—系列文章目录 上一篇:SQLite版本3中的文件锁定和并发(七) 下一篇:SQLite 查询优化器概述(九) 数据库的“isolation”属性确定何时对 一个操作的数据库对其他并发操作可见。 数据库连接之…

Ubuntu服务器搭建 - 环境篇

Ubuntu服务器搭建 - 环境篇 基于腾讯云服务器 - Ubuntu 20.04 LTS 一、安装 - MySQL 1.1 概述 MySQL安装方式有三种: 1. 使用Ubuntu 包管理工具 apt安装 2. 使用MySQL官方APT存储库安装 3. 使用MySQL官方二进制发行版安装 1.2 安装 MySQL 使用MySQL官方APT存储库安装 $ wget…

基于springboot+vue+Mysql的招生管理系统

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

【python学习笔记】pandas写入数据库时出现 “nan can‘t be used with mysql“ 错误的解决方法

pandas写入数据库时出错:nan cant be used with mysql pandas写入数据库时出错的解决方法pandas 2.0以前的版本pandas 2.0以上版本2.0以前版本的pandas是否能采用2.0以上版本的方法替换成None? pandas写入数据库时出错的解决方法 在使用pandas将一段数据…

为 Linux 中的 Docker 配置阿里云和网易云国内镜像加速下载中心

由于默认情况下,Docker 的镜像下载中心默认为国外的镜像中心,使用该镜像中心拉去镜像会十分缓慢,所以我们需要配置国内的 Docker 镜像下载中心,加速 Docker 镜像的拉取。Docker 的国内镜像下载中心常用的有:阿里云、网…

快速跨国传输怎么实现?

在当今全球化的商业舞台上,迅速且安全地跨国界传输大型文件已经成为企业运营的一个核心环节。但是,这一过程往往面临速度缓慢和安全隐患的问题,这些问题严重地影响了企业的工作效率和数据的安全性。小编将会深入探讨企业在进行跨国大文件传输…