磁盘如何分配数据数据

       📝个人主页:五敷有你      

 🔥系列专栏:算法分析与设计

⛺️稳中求进,晒太阳

磁盘如何分配数据

数据切割:

按照固定长度进行切割---》编码翻译(常用) 计算机要求按照8bit(字节)进行切割

按照变长进行切割----》哈夫曼编码(常用于压缩)

字节是存储数据的最小单元

CPU、内存和磁盘

cpu一次处理数据(一次可以处理32bit或64bit的数据)的时间是0.2ns

磁盘查找数据需要机械臂的移动

台式机120r/s

笔记本90r/s

从cpu下达指令,到磁盘查到数据有3~6ms

内存条速度为20ns

内存的内部结构是电容器当内存条断电,数据就会消失

有中间商(内存条传输)会比原来多20ns

但时间节省在查找上

大块数据会一次性由磁盘传给内存条(游戏前的加载)

磁盘上的数据经常删除和添加--》磁盘上有大量的内存碎片----》查找次数增多

每个扇区大小是4KB(约32000bit),

内存中也有对应的叫页(内存中最基本的存储单元)

为什么要有扇区?

磁盘中数据是存储在扇区中的,是磁盘的基本单元

为什么内存用红黑树也不用b树:

b树在内存存储数据时,减少了在页间的查询次数,增加了页内的查询次数,页内查询比页间查询更耗时,所以内存使用红黑树。

为了提高查咋效率:

宁可放弃空间,也要提升查询时间

B树的应用点:

b树一般用于磁盘。

对于在内存中来说,多叉树的作用不大,但是对于磁盘来说,如果一个结点存了10个key,就可以少寻址很多次。所以多叉树的作用就是使得层高降低为了减少寻址次数。这也就是为什么磁盘的存储适合用b树或b+树的原因。

多叉树 -> 降低层高 -> 减少结点数量 -> 减少磁盘IO -> 提升性能

B+树结构特点

1.非叶子节点仅具有索引作用,也就是说,非叶子节点只能存储Key,不能存储value;2.树的所有叶节点构成一个有序链表,可以按照key排序的次序依次遍历全部数据。

B+ 树的优点

1.由于B+树在非叶子结点上不包含真正的数据,只当做索引使用,因此在内存相同的情况下,能够存放更多的key;

2.B+树的叶子结点都是相连的,因此对整棵树的遍历只需要一次线性遍历叶子结点即可。而且由于数据顺序排列并且相连,所以便于区间查找和搜索。而B树则需要进行每一层的递归遍历。

B树的优点

由于B树的每一个节点都包含key和value,因此我们根据key查找value时,只需要找到key所在的位置,就能找到value,但B+树只有叶子结点存储数据,索引每一次查找,都必须一次一次,一直找到树的最大深度处,也就是叶子结点的深度,才能找到value。

未建立主键索引查询

建立主键索引

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/587753.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vscode连接服务器步骤

一 、下载vscode 下载vscode 在官网(https://code.visualstudio.com/)下载VsCode安装vscode 放到自己想安装的盘,最好不要C盘安装中文插件 安装完成后后下角会有提示说重启,点击重启就行。 4. 设置自动保存 点击右上角的文件—…

VMware-16.0配置虚拟机网络模式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、为什么要配置网络?二、配置步骤1.检查VMware服务2.进入配置页面3.添加网络模式1.Bridge2.NAT3.Host-only 4.DHCP租约5.静态IP 三、使用总结 前言…

Flutter应用发布前的关键iOS设备测试策略

本文探讨了使用Flutter开发的iOS应用能否上架,以及上架的具体流程。苹果提供了App Store作为正式上架渠道,同时也有TestFlight供开发者进行内测。合规并通过审核后,Flutter应用可以顺利上架。但上架过程可能存在一些挑战,因此可能…

Java解析实体类的属性和属性注释

前言 获取某个类的属性(字段)是我们经常都会碰到的,通常我们是通过反射来获取的。 但是有些特殊情况下,我们不仅要获取类的属性,还需要获取属性注释。这种情况下,我们只能通过注解去获取注释。可以自己定…

系列学习前端之第 8 章:一文掌握 Vue2(核心基础篇)

1、 Vue简介 1.1 简介 Vue 是动态构建用户界面的渐进式 JavaScript 框架,Vue 只关注视图层, 采用自底向上增量开发的设计。采用组件化模式,提高代码复用率、且让代码更好维护。借鉴 Angular 的模板和数据绑定技术声明式编码,让编…

大话设计模式之抽象工厂模式

抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供了一种方式来创建一系列相关或依赖对象的家族,而无需指定其具体类。该模式通过提供一个抽象工厂接口,定义了一组可以创建不同类型对象的方法&#…

水泥设备如何实现物联网远程监控?

水泥设备如何实现物联网远程监控? 在当今的工业4.0时代,水泥行业正在经历一场深度的技术革新,其中构建智慧工厂并采用物联网远程监控解决方案成为了提升生产效率、保障产品质量、实现节能减排的关键路径。该方案通过集成先进的信息技术、物联…

StreamingT2V文本生成视频多模态大模型,即将开源!

1、前言 Picsart人工智能研究所、德克萨斯大学和SHI实验室的研究人员联合推出了StreamingT2V视频模型。通过文本就能直接生成2分钟、1分钟等不同时间,动作一致、连贯、没有卡顿的高质量视频。 虽然StreamingT2V在视频质量、多元化等还无法与Sora媲美,但…

57 npm run build 和 npm run serve 的差异

前言 npm run serve 和 npm run build 的差异 这里主要是从 vue-cli 的流程 来看一下 我们经常用到的这两个命令, 他到传递给 webpack 打包的时候, 的一个具体的差异, 大致是配置了那些东西? 经过了那些流程 ? vue-cli 的 vue-plugin 的加载 内置的 plugin 列表如下, 依次…

Oracle常用sql命令(新手)

1、备份单张表 创建复制表结构 create table employeesbak as select * from cims.employees 如果只复制表结构,只需要在结尾加上 where 10 插入数据 insert into employeesbak select * from cims.employees 删除一条数据 delete from…

Centos8/linux/虚拟机安装docker

docker分为ce版和ee版,像一般的小型团体和个人使用ce版就够了,别问为什么,问就是ee版收费。 1.首先切换到root用户 2.为确保安装时出现不必要的问题,先更新一下yum包 sudo yum update 3.如果之前安装过需要删除之间安装的CE版…

linux自动下载rpm的依赖包的方法

背景 rpm安装包是存在依赖关系的。通常在离线安装的时候,没有下全依赖包,安装就会失败。 分析 1.首先我们要使用yumdownloader来下载指定的包。 yumdownloader --disablerepo* --enablerepobase,epel,extras --releasever7 --archx86_64 --downloadd…