B树系列在数据库中的应用

1.索引

**B-**树最常见的应用就是用来做索引。索引通俗的说就是为了方便用户快速找到所寻之物,比如:书籍目录可以让读者快速找到相关信息,hao123网页导航网站,为了让用户能够快速的找到有价值的分类网站,本质上就是互联网页面中的索引结构。

MySQL官方对索引的定义为:索引**(index)是帮助MySQL****高效获取数据的数据结构,简单来说:**索引就是数据结构

当数据量很大时,为了能够方便管理数据,提高数据查询的效率,一般都会选择将数据保存到数据库,因此数据库不仅仅是帮助用户管理数据,而且数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用数据,这样就可以在这些数据结构上实现高级查找算法,该数据结构就是索引。

2.MySQL索引

mysql是目前非常流行的开源关系型数据库,不仅是免费的,可靠性高,速度也比较快,而且拥****有灵活的插件式存储引擎,如下:

MySQL中索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的。
注意:索引是基于表的,而不是基于数据库的

2.1MyISAM

MyISAM引擎是MySQL5.5.8版本之前默认的存储引擎,不支持事物支持全文检索,使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址(索引和数据是分开的) ,其结构如下:

2.2InnoDB

InnoDB****存储引擎支持事务,其设计目标主要面向在线事务处理的应用,从MySQL数据库5.5.8本开始,InnoDB存储引擎是默认的存储引擎。InnoDB支持B+树索引、全文索引、哈希索引。但 InnoDB使用B+Tree作为索引结构时,具体实现方式却与MyISAM截然不同。

第一个区别是InnoDB的数据文件本身就是索引文件。**MyISAM****索引文件和数据文件是分离的,**索引文件仅保存数据记录的地址。而InnoDB索引,表数据文件本身就是按B+Tree组织的一个索引结构,这棵树的叶节点data域保存了完整的数据记录。这个索引的key是数据表的主键,因此InnoDB表数据文件本身就是主索引。

第二个区别:增加普通索引,叶子节点不能直接映射主键索引对应的值,叶子节点存的是主键索引。

2.3总结

相关推荐
Cx330❀5 小时前
【MySQL基础】一文吃透“表的约束”:从 Null/Default 到主外键的终极安全法则
linux·服务器·数据库·c++·mysql·安全
c238565 小时前
第二篇:《测试指挥官:可视化单题自测框架(含 assert 实操)》
java·数据库·c++·算法·安全性测试
我科绝伦(Huanhuan Zhou)5 小时前
MySQL极端场景数据丢失防护:从Crash-Safe到异地备份
数据库·mysql
辞旧 lekkk5 小时前
【Redis初阶】常见数据类型
开发语言·数据库·c++·redis·学习·缓存·bootstrap
明志数科6 小时前
人形机器人格斗场景下的技术挑战:动力学控制、感知融合与实时决策
网络·数据库
酉鬼女又兒6 小时前
零基础入门 DeepSeek V4 Pro API 开发:从环境搭建、消息格式规范到翻译函数实战、少样本提示、多轮对话聊天机器人与常见报错全流程详解指南
大数据·网络·数据库·人工智能·macos·机器人·github
笨蛋不要掉眼泪6 小时前
MySQL架构揭秘:MVCC解决读一致性问题
数据库·mysql·架构
Navicat中国7 小时前
开发者入门:无服务器数据库
数据库·云原生·serverless·navicat
来一碗刘肉面7 小时前
顺序表与链表的比较
数据结构·算法·链表
whn19778 小时前
如何避免以root用户执行达梦
数据库