关系型数据库的技术思路

一、网络协议

        需要根据TCP协议设计一个客户端和服务器之间的命令响应协议。

  1、服务端回复声明

  2、客户端发送登录包

  3、服务端返回登录结果

  4、登录成功后进入命令阶段,否则退出。

 

二、每个连接用一个线程

  服务器为每个客户端连接开启一个线程。

 

三、需要文件的随机读写

  需要方便的跳转到存储文件的指针。

 

四、数据结构用B+树

 1、非叶子节点存放很多个关键字

每个关键字递增排列。

  2、叶子节点存放关键字对应记录的文件存放指针。

 

五、每次读取一页到内存里

  1、查询时从文件里读取一页记录。

  2、把这一页记录用结构体格式放在内存中。

 

六、更新数据时需要B+树的查询

  1、非叶子节点中关键字的数组可以用折半查询。

 

七、每次删除节点、插入节点、更新节点要加排他锁

  1、删除、插入和新增时需要获取同一个排他锁。

  2、目的是在多个线程同时操作时保持数据前后一致。

 

排他锁是相对同一个存储文件的。

 

八、对应关系

 1、表的结构也需要用文件来描述

 2、数据库可以是对应一个文件夹。

 3、每个数据表对应一个文件。

 4、一个数据库下的所有表放在和数据库同名的文件夹里面。

 

九、需要设计B+树如何存在文件里

  每部分可以是固定的,也可以是前缀长度描述。

  需要设计一行中所有字段如何存放在文件里。

 

十、如何修改表结构

 1、表结构存在文件里。

  2、表结构被修改,记录文件也要修改。

  如果超出一行空间,需要移动记录,扩容文件。

 

如果移动一百万条记录,花费的时间太久,容易出错。

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

汽车悬架系统技术演进:从被动到全主动的革新之路(主动悬架类型对比)

在汽车工业的百年发展史中,悬架系统始终是平衡车辆性能与舒适性的关键战场。随着消费者对驾乘体验要求的不断提升,传统被动悬架已难以满足中高端车型的需求,而半主动与全主动悬架技术的崛起,正在重塑行业格局。本文将深入解析三大…

快速理解Spring 和 Spring Boot 的核心区别

1. 定位与目标 Spring Framework 定位:一个以解耦和模块化为核心的企业级 Java 开发框架,提供 IOC(控制反转)、AOP(面向切面编程) 等基础功能。解决的问题:通过依赖注入和模块化设计简化复杂的企…

【JavaSE-1】初识Java

1、Java 是什么? Java 是一种优秀的程序设计语言,人类和计算机之间的交流可以借助 Java 这种语言来进行交流,就像人与人之间可以用中文、英语,日语等进行交流一样。 Java 和 JavaScript 两者有关系吗? 一点都没有关系!!! 前端内容:HTML CSS JS,称为网页三剑客 2、JDK 下…

【新手入门】SQL注入之盲注

一、引言 在我们的注入语句被带入数据库查询但却什么都没有返回的情况我们该怎么办? 例如应用程序返回到一个"通用的"的页面,或者重定向一个通用页面(可能为网站首页)。这时,我们之前学习的SQL注入的办法就无法使用了。这种情况我们称之为无…

docker本地镜像源搭建

最近Deepseek大火后,接到任务就是帮客户装Dify,每次都头大,因为docker源不能用,实在没办法,只好自己搭要给本地源。话不多说具体如下: 1、更改docker的配置文件,添加自己的私库地址&#xff0c…

Sqlserver安全篇之_启用TLS即配置SQL Server 数据库引擎以加密连接

官方文档 https://learn.microsoft.com/zh-cn/sql/database-engine/configure-windows/configure-sql-server-encryption?viewsql-server-ver16 https://learn.microsoft.com/zh-cn/sql/database-engine/configure-windows/manage-certificates?viewsql-server-ver15&pre…

Win10环境借助DockerDesktop部署单节点Redis6

Win10环境借助DockerDesktop部署单节点Redis6 前言 在后端和大数据开发中,Redis是非常常见的一个组件,常用作KV键值对存储及分布式锁或缓存加速。 之前笔者使用Win版Redis实现了本地部署: https://lizhiyong.blog.csdn.net/article/detai…

【AIGC系列】3:Stable Diffusion模型原理介绍

目录 1 前言2 基础概念2.1 Latent space2.2 AutoEncoder2.3 VAE2.4 扩散模型2.5 多模态交叉注意力 3 Stable Diffusion原理4 整体框架4.1 文生图4.2 图生图4.3 修复 1 前言 Stable diffusion是一个基于 Latent Diffusion Models(潜在扩散模型,LDMs&…

七、Three.jsPBR材质与纹理贴图

1、PBR材质金属度和粗糙度 1、金属度metalness 金属度属性.metalness表示材质像金属的程度, 非金属材料,如木材或石材,使用0.0,金属使用1.0。 threejs的PBR材质,.metalness默认是0.5,0.0到1.0之间的值可用于生锈的金属外观 new THREE.MeshStandardMaterial({met…

解决npm run dev报错

解决:Node.js 版本更新后与 OpenSSL 不兼容导致的npm报错“Error: error:0308010C:digital envelope routines::unsupported” 方法一:更改系统环境变量方法二:更改项目环境变量方法三:更换 Node.js 版本方法四:升级依…

MySQL零基础教程10—正则表达式搜索(下)

前边已经初步认识了正则表达式,今天继续来看在mysql中使用正则表达式搜索的其他用法 mysql正则表达式的“或” 使用正则表达式可以帮助我们更加灵活地进行“或”条件的数据检索,直接上例子: 场景一:查询教师表中,院…

Hadoop第一课(配置linux系统)

1、让hadoop用户,有root权限,如果可以不输密码更好: (1)先登入root用户 (2)visudo命令进入配置文件 (3)找到 root ALL(ALL) ALL这一行,在该行下面增加:hadoop ALL(ALL) ALL (:set nu可以显示行号&#xff…

量子计算的数学基础:复数、矩阵和线性代数

量子计算是基于量子力学原理的一种新型计算模式,它与经典计算机在信息处理的方式上有着根本性的区别。在量子计算中,信息的最小单位是量子比特(qubit),而不是传统计算中的比特。量子比特的状态是通过量子力学中的数学工具来描述的,因此,理解量子计算的数学基础对于深入学…

大湾区经济网报道:拉美电商交易额连续三年增速超35%

2025全球时尚产业发展论坛发布预测,2025年拉美服装市场规模将达1016.9亿美元 大湾区经济网广州2月27日电(王峰) 26日,由广东省网商协会、树籽全球主办,广州市商务局指导的“2025全球时尚产业发展论坛暨拉美时尚趋势发…

java面试场景问题

还在补充,这几天工作忙,闲了会把答案附上去,也欢迎各位大佬评论区讨论 1.不用分布式锁如何防重复提交 方法 1:基于唯一请求 ID(幂等 Token) 思路:前端生成 一个唯一的 requestId(…

游戏引擎学习第124天

仓库:https://gitee.com/mrxiao_com/2d_game_3 回顾/复习 今天是继续完善和调试多线程的任务队列。之前的几天,我们已经介绍了多线程的一些基础知识,包括如何创建工作队列以及如何在线程中处理任务。今天,重点是解决那些我们之前没有注意到…

Elasticsearch:使用阿里云 AI 服务进行嵌入和重新排名

作者:来自 Elastic Toms Mura 将阿里云 AI 服务功能与 Elastic 结合使用。 更多阅读,请参阅 “Elasticsearch:使用阿里 infererence API 及 semantic text 进行向量搜索”。 在本文中,我们将介绍如何将阿里云 AI 功能与 Elastics…

面试问题——如何解决移动端1px 边框问题?

面试问题——如何解决移动端1px 边框问题? 最近,不少小伙伴向我反映,他们在面试中频繁被问到关于1px边框的问题。这个看似老生常谈的话题,没想到在面试中的出现率依然这么高,着实让我有些意外。对于那些对这个问题感到…

Redis的介绍、安装和配置

文章目录 一、redis官网二、redis是什么三、能干嘛 总体功能一图概述优势小总结 三、Redis的下载与安装 Redis的安装Redis迭代演化和Redis7新特性新特性部分说明Redis的安装 安装步骤总结 Redis的卸载 一、redis官网 https://redis.io/ 中文官网:http://www.red…

首次使用WordPress建站的经验分享(一)

之前用过几种内容管理系统(CMS),如:dedeCMS、phpCMS、aspCMS,主要是为了前端独立建站,达到预期的效果,还是需要一定的代码基础的,至少要有HTML、Css、Jquery基础。 据说WordPress 是全球最流行的内容管理系统CMS,从现在开始记录一下使用WordPress 独立建站的步骤 选购…