索引的基本介绍与分类

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 索引的基本介绍与分类

索引是帮助MySQL高效获取数据的数据结构.mysql在存储数据之外,数据库系统中还维护着满足特定查找算法的数据结构,这些数据结构以某种引用(指向)表中的数据,这样可通过数据结构上实现的高级查找算法来快速找到我们想要的数据.这种数据结构就是索引.(排好序的可以快速查找数据的数据结构)           (头插法,尾插法)


1.二叉树数据结构的弊端:当极端情况下,数据递增插入时,会一直向右插入,形成链表,查询效率会降低。 MySQL中常用的索引数据结构有BTree索引(Myisam普通索引)B+Tree索引(innodb普通索引),Hash索引(memory存储引擎)等

2.索引优势:提高数据检索的效率,降低数据库的IO成本. 2.通过索引对数据进行排序,降低数据排序的成本,降低了CPU的消耗。

3.索引劣势:索引实际上也是一张表,保存了主键和索引的字段,并且指向实体表的记录,所以索引也是需要占用空间的. 2.在索引大大提高查询速度的同时,却会降低表的更新速度,在对表进行数据增删改的同时, mysql不仅要更新数据,还需要保存一下索引文件。 3.每次更新添加了的索引列的字段,都会去调整 因为更新带来的减值变化后的索引信息!

4.索引使用场景 --哪些情况需要创建索引: 1.主键自动建立唯一索引 2.频繁作为查询条件的字段应该创建索引(where后面的语句) 3.查询中与其它表关联的字段,外键关系建立索引 4.多字段查询下倾向创建组合索引 5,查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度 6.查询中统计或者分组字段 |

5.哪些情况不推荐建立索引:表记录太少 2.经常增删改的表 3.where条件里用不到的字段不建立索引

6.索引分类:复合索引:即一个索引包含多个列. 建表时可随表一起建立复合索引,单独创建和删除复合索引语法:创建复合索引:alter table 表名 add index 索引名(字段,字段2); 删除复合索引:drop index 索引名 on 表名;

7.性能分析:mysql常见瓶颈:sql中对大量数据进行比较,关联,排序,分组时CPU的瓶颈. 2.实际内存满足不了大量的物理IO。查询数据时扫描过多数据行,导致查询效率低 | Explain:使用EXPLAIN关键字可以模拟优化器执行sql查询语句,从而知道MySQL是如何处理sql语句的。可以用来分析查询语句或是表的结构的性能瓶颈. 其作用:表的读取顺序|哪些索引可以使用|数据读取操作的操作类型


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
存储 安全 编译器
C基础知识(存储类别)
C基础知识(存储类别)
159 1
|
4月前
|
关系型数据库 MySQL 数据库
MYSQL索引的分类与创建语法详解
理解并合理应用这些索引类型,能够有效提高MySQL数据库的性能和查询效率。每种索引类型都有其特定的优势,适当地使用它们可以为数据库操作带来显著的性能提升。
198 3
|
6月前
|
存储 SQL 关系型数据库
(四)MySQL之索引初识篇:索引机制、索引分类、索引使用与管理综述
本篇中就对MySQL的索引机制有了全面认知,从索引的由来,到索引概述、索引管理、索引分类、唯一/全文/联合/空间索引的创建与使用等内容,进行了全面概述。
235 0
|
7月前
|
存储 关系型数据库 MySQL
MySQL数据库——索引(1)-概述以及B-Tree结构
MySQL数据库——索引(1)-概述以及B-Tree结构
38 0
|
存储 移动开发 算法
八大排序(一)--------排序的基本概念与分类
八大排序(一)--------排序的基本概念与分类
84 0
|
存储 算法 C#
C#面向对象程序设计课程实验三:实验名称:C#数组和集合
C#面向对象程序设计课程实验三:实验名称:C#数组和集合
C#面向对象程序设计课程实验三:实验名称:C#数组和集合
|
存储 自然语言处理 算法
【MySQL从入门到精通】【高级篇】(十九)索引的分类&创建索引的三种方式&删除索引的两种方式
MySQL中的索引包括普通索引、全文索引、单列索引、多列索引和空间索引等。
402 0
【MySQL从入门到精通】【高级篇】(十九)索引的分类&创建索引的三种方式&删除索引的两种方式
|
Scala 开发者
类型匹配的基本介绍和使用 | 学习笔记
快速学习类型匹配的基本介绍和使用
类型匹配的基本介绍和使用 | 学习笔记
|
机器人 编译器 Python
Python编程基础:实验3——字典及集合的使用
Python编程基础:实验3——字典及集合的相关知识点题目练习
303 0
Python编程基础:实验3——字典及集合的使用
|
存储 关系型数据库 MySQL
索引结构与检索原理|学习笔记
快速学习索引结构与检索原理
119 0
索引结构与检索原理|学习笔记