IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL之索引原理与数据结构 -> 正文阅读

[大数据]MySQL之索引原理与数据结构

索引是为了快速查找数据的一种有序的数据结构。

不选择二叉树作为索引的存储结构的原因

二叉树的每个节点有2个子节点,当插入数据量较大的时候会导致树非常高,增大了IO的次数,导致读取数据变慢。而选择好的数据结构来减少IO次数是高效查询的关键。因此,B树与B+树应运而生。

B树

在这里插入图片描述
B树上的节点上存在数据,假设每个节点对应一个磁盘块,之多可以存储16条数据,那么三层高的树就能存16的三次方条数据,但是每一条数据都包含了指针,key和data,所以占用空间很大,能存储的的数据就相对来说比较少,因此B+树应运而生。

B+树

在这里插入图片描述
B+树相对于B树来说叶子节点之间存在节点之间的双向指针,同时非叶子节点只存储指针和Key值,不存储data,那么非叶子节点就可以存储成倍数的key。一般情况下三到四层的B+树可以存储上千万的数据。

在设计索引的时候应该尽可能少的让索引占用较少的空间(字段的长度)。

自增id和uuid的选择

自增id优点: 插入有序.在innodb引擎下,查询和插入速度快,占用空间小
自增id缺点: 多表合并和数据迁移会有id冲突,高并发的情况下,竞争自增锁会降低数据库的吞吐能力,容易被人知晓业务量,会被爬虫设定。
uuid优点: 生成唯一id不会冲突
uuid缺点: 占用空间大,插入和查询速度慢,读取出来的数据也是没有规律的,通常需要order by,其实也很消耗数据库资源,表中数据是按照主键顺序存放的。也就是说,如果发生了随机io,那么就会频繁地移动磁盘块。当数据量大的时候,写的短板将非常明显。
数据量较大的项目或者对读写速度有要求的项目中推荐使用自增id。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-18 17:27:40  更:2021-10-18 17:29:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:07:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码