首页 > 数据库 >MySQL-索引

MySQL-索引

时间:2022-09-19 21:46:03浏览次数:128  
标签:Tree 索引 二叉树 MySQL 数据结构 节点

MYSQL之索引

本章包含索引概述,索引结构,索引语法,索引分类,SQL性能分析,索引使用,索引设计原则!

  • 索引概述

  1. 介绍
    (1)索引(index)是帮助MySQL高效获取数据的数据结构(有序)。
    (2)在数据之外,数据库系统还维护着满足特定查找算法的数据结构。这些数据结构以某种方式引用(指向)数据。
    (3)这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。
  2. 优缺点
    优点:
    (1)提高数据检索的效率,降低数据库的IO成本。
    (2)通过索引列对数据进行排序,降低了数据的排序成本,减低cpu的消耗。
    缺点:
    (1)索引列也是要占用空间。
    (2)索引大大提高了查询效率,同时却降低了更新表的速度,因为在进行insert,update,delete时还需要维护索引。
  • 索引的数据结构

MySQL的索引是在存储引擎层实现的,不同的存储引擎有不同的索引结构。主要分为4种。
image
image
我们平常所说的索引,一般指的是B+Tree索引。

二叉树数据结构

二叉树的缺点:
(1)顺序插入时,会形成一个链表,查询速度大大降低。
(2)由于一个节点最多只能由连个子节点,大数据量时,树的层级较深,检索速度慢。

红黑树数据结构

红黑树是自平衡二叉树:
(1)解决了形成链表的情况。
(2)本质上是二叉树,大数据量时,树的层级较深,检索速度慢。

B-Tree数据结构

B-Tree是多路平衡查找树。
image
动态演示链接:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
B-Tree特点,以5阶树为例
(1)5阶的树,每个节点最多存储4个key,5个指针。
(2)插入数据时,每个节点在key等于5时,发生裂变,中间元素向上抽取。以此类推

B-Tree数据结构

B+Tree是特殊的B-Tree树。
image
image

相对于B-Tree的区别
(1)所有的数据都会出现在叶子节点
(2)叶子节点形成一个单向链表。

标签:Tree,索引,二叉树,MySQL,数据结构,节点
From: https://www.cnblogs.com/xdlstudy/p/16709001.html

相关文章

  • MySQL查看最大连接数和修改最大连接数
    1、查看最大连接数showvariableslike'%max_connections%';2、修改最大连接数setGLOBALmax_connections=200;以下的文章主要是向大家介绍的是MySQL最大连接数的......
  • 【Mysql】主从同步原理
    mysql主从同步过程:mysql的主从复制主要有三个线程:master:二进制日志转储线程(binlogdumpthread)、slave:I/O线程(I/Othread)和SQL线程(SQLthread).master一条线程和slave......
  • mysql的单路排序和双路排序
    单路排序:查询数据时,将所有要查询的数据全部加载到内存中进行排序。双路排序:查询数据时,只是将排序字段和记录ID加载到内存中,排好序后在根据id回表加载数据。单路排序占......
  • MySQL-存储引擎
    存储引擎本章包含MySQL的体系结构、存储引擎介绍、存储引擎特点、存储引擎的选择!使用的MySQL8.0版本。MySQL的体系结构MySQL服务的体系结构图:MySQL服务各层的功......
  • mysql(6)约束
    约束是作用于表中字段上的规则,用于限制存储在表中的数据,以保证数据库中数据的正确、有效性和完整性。 约束分类    外键约束具有外键的表为子表,外键关联的表......
  • mysql初步自学
    mysql是目前最常用的一项数据库,所谓的mysql实际上是数据库管理系统(JBMS),数据库使用sql语句实现对数据库的操作,实际上目前的数据库无论是mysql还是oracle都是采用的sql语句去......
  • 【Mysql】什么是MVCC
    多版本并发控制:读取数据时通过一种类似快照的方式将数据保存下来,这样读锁就和写锁不冲突了,不同事务会话看到自己特定版本的数据,使用版本链。MVCC只在READCOMMITTED和RE......
  • MySQL进阶
    【转】Mysql进阶学习Ⅰ,索引优化入门之前学习的数据库知识,主要是对表的增删改查(CRUD),并没有考虑对数据库做出优化,这章内容就是学习怎么优化数据库。为什么要优化数据库?当......
  • Postgresql索引介绍
    参考地址:PostgreSQL9种索引的原理和应用场景-阿里云开发者社区(aliyun.com)1、btreeb-tree适合所有的数据类型,支持排序,支持大于、小于、等于、大于或等于、小于或等于......
  • mysql5.7+版本,date类型设置默认值0000-00-00 报错
    在本地建表,发现无法给date类型设置默认值为0000-00-00,报错:  在mysql命令行输入:SELECT@@SQL_MODE,可以看到值为:ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZER......