美文网首页
数据库的索引的数据结构

数据库的索引的数据结构

作者: 无尘粉笔 | 来源:发表于2021-09-22 13:52 被阅读0次

索引是帮助数据库高效获取数据排好序的数据结构
常用的存储引擎innodb采用的是B+Tree
索引的数据结构 B+Tree (对于B-Tree的优化)
二叉树
红黑树
Hash表
B-Tree

其他数据结构的弊端
二叉树: 可能会退化成链表,会进行全表扫描,数据量大的时候,树的深度很深
红黑树:大数据下,树的深度很大,进行查找的时候进行磁盘交互次数太多

5981c50d6d3230a1fa3d9256b36e004.png

查询数据时候,先将根节点的所有数据加载到内存中,然后再内存中进行比对(索引,数据是保存再磁盘里面【存在磁盘下, 一般放在数据库安装的文件的路径的/data下面,文件一般是 表名.fm 保存数据的结构信息等。 MyISAM数据库引擎的 表名.ymd 保存数据库的数据 表名.myi保存数据库的索引,如果是innerDB引擎的话,一般是 表名.fm 表名.idb】,加载到内存进行了一次IO交互),mysql的叶节点默认大小是16kb

innerDB数据引擎与myisam引擎的区别是
innerdb 索引的叶子节点保存的是数据
myisam 索引的叶子节点保存的是数据的磁盘地址


8a5dcdf4c842c1277e3b3b9387ea3b4.png

引入概念:聚集索引
聚集索引就是索引的叶子节点包含了数据的所有数据 例如innerdb的主键索引就是聚集索引,而myisam的主键索引就是非聚集索引。

索引有两种结构,一种是B+Tree 一种是hash
一般不适用hash是因为hash 不支持范围查找(主要),出现hash碰撞(次要)

二级索引(非聚集索引)叶子节点保存的是主键,需要回表进行查找数据


6315f9c24460bc8fec2ce717d7f5b6f.png

联合索引


c58dc2901410d6fcf426322c71d4b36.png

最左前缀原则的原理就是 例:当name不是确定的情况下,age不是有序的。

相关文章

  • 数据库索引结构总结

    [TOC] 参考 数据库索引数据结构总结 本文摘抄自数据库索引数据结构总结 1. 摘要 数据库索引是数据库中最重要...

  • 数据库学习笔记-索引的基本概念

    数据库学习笔记-索引 [TOC] 索引 本质 索引是数据结构,是一种排好序的快速查找数据结构 数据本身之外,数据库...

  • MySQL索引

    数据库索引的本质是数据结构,这种数据结构能够帮助我们快速的获取数据库中的数据。 索引类型 唯一索引看见名字我们就知...

  • 一天一道面试题——数据库篇4(MySQL索引)

    说一说MySQL索引。 索引定义 为了提高检索数据库的数据的数据结构。 索引分类 根据数据结构分类 B+树索引,哈...

  • MySQL 索引

    MySQL 索引 数据库索引的原理:数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表...

  • 数据库_索引

    二、索引 1.什么是索引? 何为索引:数据库索引,是数据库管理系统中一个排序的数据结构,索引的实现通常使用B树及其...

  • 2021-08-09 MySQL索引原理

    ,索引概念 数据库索引,是数据库管理系统中的一个排序的数据结构,用于协助快速查询、修改数据。 索引分类 正常索引、...

  • 一文了解数据库索引:哈希、B-Tree 与 LSM

    数据库索引 索引(Index)是帮助数据库系统高效获取数据的数据结构,数据库索引本质上是以增加额外的写操作与用于维...

  • mongodb 索引浅析

    什么是索引 索引是一种用来方便查询数据的 数据结构 B Tree就是一种常用的数据库索引数据结构,MongoDB采...

  • MySql 索引

    MySql索引那些事 1、什么是索引 数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库...

网友评论

      本文标题:数据库的索引的数据结构

      本文链接:https://www.haomeiwen.com/subject/fnjigltx.html