学校文化建设网站,网站开发登录要做哪些验证,设计公司网站建设需要多少钱,镇江建设网站的公司宏观
数据库的实现原理分为四个部分#xff1a;
网络通信
网络协议
硬盘存储
内存分配
微观
硬盘存储
数据库是持久化的#xff0c;而持久化如何实现的#xff0c;我们不难想到磁盘可以持久化存储#xff0c;所以数据库所有持久化的数据都是以文件形式存在磁盘中的…宏观
数据库的实现原理分为四个部分
网络通信
网络协议
硬盘存储
内存分配
微观
硬盘存储
数据库是持久化的而持久化如何实现的我们不难想到磁盘可以持久化存储所以数据库所有持久化的数据都是以文件形式存在磁盘中的包括索引文件所以我认为万物皆文件。这里我们需要注意的操作系统的基础知识是只要存在磁盘中的数据都是以文件形式存储的。包括虚拟内存试将不用的进程挂起然后将进程数据信息使用文件的形式存储在磁盘中的一个特定区域中。
网络通信
在数据库中有一个关键的东西那就是socket。数据库是通过它来与端口所交互的。
那socket又是如何与端口进行交互的呢
我们第一印象会想到只要端口来了数据就发送给socket吧。这样看似可以但是如果真这样做的话我们还要更麻烦的去识别端口来消息然后让socket被动去接收我们不如直接让socket主动去接收过一段时间socket就去询问一下端口是否来数据从而获得新数据。
网络协议
如今的网络通信如果是建立连接的话普遍使用TCP协议这样可以保证信息的可靠传输。通过三次握手建立连接四次挥手释放连接。
一个socket只能对应一个连接所以许多个客户端连接会产生许多个socket。
每次建立一个新连接时都会对账号和密码进行比对比对完之后就会生成一个身份标记同时存放在端口和socket中之后每一次连接只需要比对身份标记就可以这样会大大提高性能不需要每次都去进行用户名和密码的比对。同时保证了性能和安全性。
注意两者通信建立连接之后一定要记得断开连接。
内存分配
socket拿到数据后后进行字符集编码 --》校验身份 --》解析sql语句。
解析时会将表拷贝进内存文件中存入的是各个列的数组信息并且一列一列的查询需要的返回不是就继续下一列。不建立索引的情况
为了加快速度就可以建立索引一个表可以建很多索引文件。
先通过索引文件查找到地址然后再去表文件中根据地址查找。