1、MYSQL系列-深入理解Mysql索引底层数据结构与算法

索引的本质

索引是帮助MySQL高效获取数据的排好序的数据结构

索引数据结构

  1. 二叉树
  2. 红黑树
  3. Hash表
  4. B+Tree

B-Tree

B-Tree 叶节点具有相同的深度,叶节点的指针为空,所有索引元素不重复,节点中的数据索引从左到右递增排列

B+Tree(B-Tree变种)

非叶子节点不存储data,只存储索引(冗余),可以放更多的索引, 叶子节点包含所有索引字段, 叶子节点用指针连接,提高区间访问的性能

Hash

对索引的key进行一次hash计算就可以定位出数据存储的位置 。很多时候Hash索引要比B+ 树索引更高效 但是仅能满足 "=","IN",不支持范围查询 hash冲突问题。

MyISAM索引文件和数据文件是分离的(非聚集)

联合索引的底层存储结构长什么样?

相关推荐
拾起零碎1 分钟前
U8/中途启用批次管理-批次档案无效
数据库
2301_779622413 分钟前
为什么宝塔面板网站无法正常连接外部远程数据库_检查服务器安全组放行端口并开启IP授权
jvm·数据库·python
2401_833033624 分钟前
Go语言怎么做密码加密_Go语言bcrypt密码哈希教程【总结】
jvm·数据库·python
X56617 分钟前
mysql索引基数统计更新不及时_mysqlANALYZE分析表操作
jvm·数据库·python
2301_775639899 分钟前
React 中的渲染(Rendering)机制详解
jvm·数据库·python
JSON_L13 分钟前
MySQL 时间字段避坑指南:TIMESTAMP
数据库·mysql
m0_7403524213 分钟前
测试库与生产库怎么应对同步中断断点续传_无损发布与更新方案
jvm·数据库·python
m0_4954964121 分钟前
SQL批量更新状态机字段_使用CASE表达式一次性处理
jvm·数据库·python
2401_8504916523 分钟前
Python处理分类不平衡问题_使用平衡随机森林提升召回率
jvm·数据库·python
终生成长者31 分钟前
04LangChain SQL 问答系统知识点详解
数据库·python·sql·langchain