当前位置: 首页 > news >正文

JAVA面经整理(8)

一)为什么要有区,段,页?

1)页是内存和磁盘之间交互的基本单位内存中的值修改之后刷到磁盘的时候还是以页为单位的索引结构给程序员提供了高效的索引实现方式,不过索引信息以及数据记录都是记录在文件上面的,确切来说是存储在页结构中,另一方面,索引是在存储引擎中实现的,MYSQL服务器上面的存储引擎负责对于表中的数据进行读取和写入操作,不同的存储引擎中存放的格式是不同的,有的存储引擎例如Memory甚至都不用磁盘存储数据

2)InnoDB见数据划分成若干个页,页的大小默认是16KB,MYSQL以页作为磁盘和内存交互的基本单位,也就是说MYSQL一次至少将16KB的数据从磁盘加载到内存里面,一次也是至少把内存中的16KB数据刷新到磁盘上,也就是说从数据库中无论是读一行还是读取多行,都是将这些行所在的页进行加载,也就是说数据库进行存储空间的基本单位是页,数据库IO操作的最小单位是页,一个页中可以有多条行记录

3)页和页之间并不会在物理结构上直接相连,而是通过链表进行相连

1)什么要有区? 

1.1)select * from user where userID>1 and userID<5,这些满足要求的数据可能分布在不同的页中,我们就需要找到所有数据所在的页,想要将页加载到内存中,实际上页和页之间在物理磁盘中离的是非常远的,MYSQL需要依次找到三个页的物理磁盘位置并把它们加载到磁盘中,因为磁盘中的磁头在去查找页的时候需要做寻道,盘片的旋转都需要时间,这种状况就称之为随机IO,随机IO中磁盘的读写速度和内存的操作速度相差了好几个数量级,在磁盘中查找页,如果页分散在磁盘上面的不同区域,找页就非常麻烦

1.2)顺序IO:所以说尽量让链表中相邻的页的物理位置也相邻,所以进行磁盘范围查询的时候方便,使用顺序IO,尽量让三个页在物理磁盘上是挨着的,是连续存放的,这样进行寻找的时候就能减少盘片旋转和磁道扫描的过程,这样加载速度就会快很多,分一个区就是为了保证一波页是在物理磁盘时尽量连续的,这样子就减少了随机IO;

1.3)但是区和区不一定是连续的,所以很有可能我们查询的数据都在一个区里面,多个页在一个区内,比之前多个页随机分布在磁盘上面的各个位置要靠谱得多

 

2)为什么要有段? 

1)在区里面存放页,区里面的页是连续存储,现在还是进行查询

select * from user where userID>1 and userID<5,现在已经定位到userID大于等于1小于等于5这个范围了,现在感兴趣的只是B+树的叶子节点中所在的页

2)但是非叶子节点也是页,但是现在的区中极有可能存放叶子节点中的页,也有可能存放非叶子节点中的这些目录页,区中既有目录页也有数据页,但是感兴趣的只有数据页,因为都放,可能就会导致数据页放的少了,此时加载数据的时候,发现加载一个页数据项不够,又要跳转到下一个区,这个时候就不纯粹了,所以说能不能做到这样,特定的区只能存放叶子结点的那些页,有一些区专门存放非叶子节点的那些页,这样在进行定位数据的时候直接定位到叶子节点所在的区即可

3)一个段里面可能有多个区,非叶子节点多分配几个区,这些区都在一个段里面

相关文章:

JAVA面经整理(8)

一)为什么要有区&#xff0c;段&#xff0c;页&#xff1f; 1)页是内存和磁盘之间交互的基本单位内存中的值修改之后刷到磁盘的时候还是以页为单位的索引结构给程序员提供了高效的索引实现方式&#xff0c;不过索引信息以及数据记录都是记录在文件上面的&#xff0c;确切来说是…...

【Java 进阶篇】JDBC数据库连接池Druid详解

在Java应用程序中&#xff0c;与数据库进行交互是一个常见的任务。为了更有效地管理数据库连接并提高性能&#xff0c;数据库连接池是一种常见的解决方案。Druid是一个流行的JDBC数据库连接池&#xff0c;它具有丰富的功能和高性能。本博客将详细介绍Druid连接池&#xff0c;包…...

Linux——指令初识

Linux下基本指令 前言一、 ls 指令二、 pwd命令三、cd 指令四、 touch指令五、mkdir指令六、rmdir指令 && rm 指令七、man指令八、cp指令九、mv指令十、cat指令十一、.more指令十二、less指令十三、head指令十四、tail指令总结 前言 linux的学习开始啦&#xff01; 今…...

专题一:双指针【优选算法】

双指针应用场景&#xff1a; 数组划分、数组分块 目录 一、移动0 二、复写0 从后向前 三、快乐数 链表带环 四、盛水最多的容器 单调性双指针 五、有效三角形个数 单调性双指针 六、和为s的两个数字 七、三数之和 细节多 需再练 一、移动0 class Solution { public:void move…...

蓝桥等考Python组别十二级007

第一部分:选择题 1、Python L12 (15分) 运行下面程序,输出的结果是( )。 lis = [A, B, C, D, E, F] print(lis[0 : 3]) [A, B, C][A, B][A, B, C, D][B, C, D]正确答案:A 2...

全方位介绍工厂的MES质量检验管理系统

一、MES质量检验管理系统的定义&#xff1a; MES质量检验管理系统是基于制造执行系统的框架和功能&#xff0c;专注于产品质量的控制和管理。它通过整合和优化质量检验流程&#xff0c;提供实时的数据采集、分析和反馈&#xff0c;帮助工厂实现高效的质量管理。该系统涵盖了从…...

避免风险,亚马逊、沃尔玛、阿里国际站选择什么样的测评方式最安全?

亚马逊、沃尔玛、速卖通、阿里国际站上做测评是最有效的推广手段之一&#xff0c;而测评又存在很大的风险。但是测评的风险来自哪里&#xff1f;什么样的测评方式才安全呢&#xff1f; 因为平台大数据风控点很多&#xff0c;根据洪哥六七年的测评经验&#xff0c;风控包括以下…...

【C语言】语法--联合体union详解

本文参考博客: https://blog.csdn.net/m0_57180439/article/details/120417270 定义及示例: 联合是一种特殊的自定义类型,该种类型定义的变量也包含一系列的成员,特征是这些成员共用同一块空间,所以联合体也被称为共用体。 #include<stdio.h> union Un//联合类型…...

接口测试复习

一。基本概念 接口概念&#xff1a;系统与系统之间 数据交互的通道。 接⼝测试概念&#xff1a;校验 预期结果 与 实际结果 是否⼀致。 特征&#xff1a; 测试⻚⾯测试发现不了的问题。&#xff08;因为&#xff1a;接⼝测试 绕过前端界⾯。 &#xff09; 符合质量控制前移理…...

获取医疗器械板块的个股列表

获取医疗器械板块的个股列表&#xff0c;用python爬虫做到&#xff08;数据网址&#xff1a;板块 - 医疗器械概念 - 股票行情中心 - 搜狐证券&#xff09; import requests from bs4 import BeautifulSoup # 获取医疗器械概念个股列表url "https://q.stock.sohu.com/cn/…...

1026 程序运行时间

要获得一个 C 语言程序的运行时间&#xff0c;常用的方法是调用头文件 time.h&#xff0c;其中提供了 clock() 函数&#xff0c;可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。这个时间单位是 clock tick&#xff0c;即“时钟打点”。同时还有一个常数 CLK_TCK&…...

博途1200/1500 ALT指令

SMART PLC的ALT指令实现代码,请查看下面文章博客 SMART PLC如何构造ALT指令_smart200类似alt指令-CSDN博客单按钮启停这些老生常谈的问题,很多人感兴趣。这篇博文讨论下不同的实现方法,希望对大家有所帮助。指令虽然简单,但是在编程的时候合理使用对我们高效率编程帮助还是…...

11、视频分类建议

8、绩效看板与日清计划 9、大小屏分离与精细化审核 10、质量审核的设立与合并 视频分类印象深刻&#xff0c;因为这是我亲手做的第一个增效工具。 审核的其中一个任务是保证视频分类信息的准确性&#xff0c;账号本身是有一个缺省分类的&#xff0c;内容上传之后默认使用账号…...

【计算机组成原理】考研真题攻克与重点知识点剖析 - 第 2 篇:数据的表示和运算

前言 本文基础知识部分来自于b站&#xff1a;分享笔记的好人儿的思维导图与王道考研课程&#xff0c;感谢大佬的开源精神&#xff0c;习题来自老师划的重点以及考研真题。此前我尝试了完全使用Python或是结合大语言模型对考研真题进行数据清洗与可视化分析&#xff0c;本人技术…...

使用maven框架搭建一个IDEA插件项目

以下是使用 Maven 框架搭建 IDEA 插件项目的步骤&#xff1a; 打开 IDEA&#xff0c;点击 File -> New -> Project&#xff0c;选择 Maven。 在弹出的 New Project 窗口中&#xff0c;选择 Maven&#xff0c;然后选择 Create from archetype&#xff0c;找到 Maven 插件…...

第二届全国高校计算机技能竞赛——C++赛道 题解

Powered by:NEFU AB-IN Link 文章目录 第二届全国高校计算机技能竞赛——C赛道A 互不侵犯题意思路代码 B 奖学金题意思路代码 C 领导者题意思路代码 D 空调题意思路代码 E 字符操作变换题意思路代码 第二届全国高校计算机技能竞赛——C赛道 A 互不侵犯 题意 在象棋中&#xff…...

八大排序源码(含优化)

文章目录 1、直接插入排序2、希尔排序3、选择排序4、冒泡排序5、堆排序6、快速排序快速排序递归实现霍尔法挖坑法前后指针法快速排序小区间优化 快速排序非递归实现 7、归并排序归并排序递归实现归并排序非递归 8、计数排序 大家好&#xff0c;我是纪宁&#xff0c;这篇文章是关…...

单调队列---数据结构与算法

简介 队列也是一种受限制的线性表和栈相类似&#xff0c;栈是先进后出&#xff0c;而队列是先进先出&#xff0c;就好像一没有底的桶&#xff0c;往里面放东西&#xff0c;如图 在这里也是用数组来实现队列&#xff0c;用数组实现的叫做顺序队列 队列的数组模拟 const int N…...

小程序如何使用自定义组件

使用自定义组件的步骤如下&#xff1a; 创建自定义组件&#xff1a;在小程序项目根目录下的 components 文件夹中创建一个文件夹&#xff0c;然后在该文件夹中创建一个 .json 文件、一个 .wxml 文件和一个 .js 文件&#xff0c;这三个文件分别对应组件的配置、模板和逻辑。 在…...

归并排序含非递归版

目录 1.归并排序的原理 2.实现归并排序 2.1框架 2.2区间问题和后序遍历 2.3归并并拷贝 2.4归并排序代码 2.5测试 3.非递归实现归并排序 3.1初次实现 3.2测试 3.3修改 3.4修改测试 1.归并排序的原理 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治…...

项目进展(八)-编写代码,驱动ADS1285

一、代码 根据芯片的数据手册编写部分驱动&#xff0c;首先看部分引脚的波形&#xff1a; DRDY: CS&#xff1a; 首先在代码初始化时连续写入三个寄存器&#xff1a; void WriteReg(uint8_t startAddr, uint8_t *regData, uint8_t number) {uint8_t i0;// 循环写number1次…...

【MyBatis-Plus】快速精通Mybatis-plus框架—快速入门

大家在日常开发中应该能发现&#xff0c;单表的CRUD功能代码重复度很高&#xff0c;也没有什么难度。而这部分代码量往往比较大&#xff0c;开发起来比较费时。 因此&#xff0c;目前企业中都会使用一些组件来简化或省略单表的CRUD开发工作。目前在国内使用较多的一个组件就是…...

docker 安装kafka

运行容器 zookeeper: [rootk8s-master ~]# docker run -d --restartalways --log-driver json-file --log-opt max-size100m --log-opt max-file2 --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime zookeeper c603f292813cfd6e2b16fff88a9767cc86fc9bba34d82…...

容器内获得apiserver地址

1.容器的Env的KUBENETES_SERVICE_HOST字段 roottomcat01-69fc8f859b-w9btn:/tmp# env | grep KUBERNETES_SERVICE_HOST10.96.0.1 KUBERNETES_SERVICE_HOST10.96.0.12.通过域名查询 nslookup getent hosts roottomcat01-69fc8f859b-w9btn:/tmp# getent hosts kubernetes.def…...

linux服务端c++开发工具介绍(vscode版)

本文适合于有一定c开发经验&#xff0c;但是还不明确如何到linux服务端开发程序的同学。 一、vscode 几年前用的是ssh到云服务上&#xff0c;再用vim在云上开发的形式 ssh dongbeijing.dbj11.158.142.176 vim hello.c 现今&#xff0c;由于vscode比较好用&#xff0c;这几年…...

Linux常用命令大全

Linux常用命令大全 一、文件&目录管理1. 文件和目录操作命令2. 查看文件及内容处理命令3. 文件压缩及解压缩命令4. 搜索文件命令5. 其他 二、Linux 软件包管理三、用户管理1. 用户管理2. 查看系统用户登陆信息的命令 四、进程管理五、网络通信1. 基础网络操作命令2. 深入网…...

Python中取2023, 9, 1——2023, 10, 31的全部时间

使用datetime.date()函数定义了开始和结束日期。然后&#xff0c;我们使用datetime.timedelta()类创建了一个时间范围&#xff0c;其中n表示从开始日期到结束日期之间的天数。最后&#xff0c;我们使用一个for循环迭代时间范围内的日期&#xff0c;并打印每个日期。示例代码演示…...

创建django文件

1、在指定目录里打开终端&#xff0c;输入D:\Softwares\Anaconda3\envs\pytorch\Scripts\django-admin .exe startproject 名称 &#xff0c;即可在对应目录里创建django文件。...

全排列[中等]

优质博文&#xff1a;IT-BLOG-CN 一、题目 给定一个不含重复数字的数组nums&#xff0c;返回其所有可能的全排列。你可以按任意顺序返回答案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例…...

mybatise-plus的id过长问题

一、问题情景 笔者在做mp插入数据库(id已设置为自增)操作时&#xff0c;发现新增数据的id过长&#xff0c;结果导致前端JS拿到的数据出现了精度丢失问题&#xff0c;原因是后端id的类型是Long。在网上查了一下&#xff0c;只要在该属性上加上如下注解就可以 TableId(value &q…...

凡科做的网站被举报了会怎么样/yande搜索引擎官网入口

权限问题 进入我的电脑-上方工具菜单-文件夹选项-查看&#xff0c;取消下方的“使用简单的文件共享”的勾选。选择那个分区的图标-右键-属性-安全&#xff0c;点下方的高级按纽-点上方的所有者标签&#xff0c;选择你的用户名&#xff08;如果没有那么点添加按纽&#xff0c;如…...

网站建设:中企动力/自己创建一个网站需要多少钱

/*按下F12执行...松开F12执行...怎么写&#xff1f;*/F12::MsgBox 按下了F12KeyWait, F12MsgBox 松开了F12Return...

购买帝国cms做网站代理/北京seo人员

近期刚接触一种工具(命令)&#xff0c;什么命令呢&#xff1f;就是adb命令&#xff0c;对这个命令纯属一个小白鼠&#xff0c;什么都不懂&#xff0c;所以仅仅能adb --help 一下參数。然后就尝试着使用。今天遇到一个问题&#xff0c;需要将某个文件拷到小机上面&#xff0c;小…...

青岛房产网58同城网/北京优化互联网公司

是新朋友吗&#xff1f;记得先点蓝字关注我哦&#xff5e;微信后台回复关键词&#xff1a;? 回复【公告】查看2020年招募公告? 回复【QQ】加入21备考qq交流群? 回复【21备考】免费获取(公基思维导图&#xff0c;练习题册)&#xff1b;每日时政2020年12月25日要闻1.英国与欧盟…...

豪柏大厦做网站的公司/长沙网络推广只选智投未来

SAP提供处理返修的种种解决方案有&#xff1a; 1&#xff0e; 可以用触发点&#xff08;Trigger points&#xff09;在你现有的生产订单中插入一个返修参考工序集&#xff08;Rework reference operation set&#xff09;. 这有助于你在正常生产流程中顺利地处理返修事宜。 2&…...

最便宜的网站建设/中国舆情网

目录 摘要 III ABSTRACT IV 目录 V 第1章 绪论 7 1.1 课题背景 7 1.2 国内外现状 7 1.3 课题的目的和意义 7 1.4 本文组织结构 8 第2章 相关技术介绍 9 2.1 ASP.NET技术 9 2.2 C#语言 9 2.3 SQL Server数据库 9 2.4 B/S结构 9 2.5 AJAX 10 2.6 Android 10 2.7本章小结 10 第3章…...