mysql数据库的运行原理

前情提要——数据库的原理:

  • 在硬盘中数据以文件的形式存储,数据库一个表就是一个文件,整个数据库就是一个文件夹;
  • 我们通过mysql解析指令,然后在硬盘上去数据库里面取表,更新完以后再将内存里面的数据更新到数据库中。

主要答案:

mysql数据库会通过监听socket端口,java通过TCP/IP协议[传输层]给3306默认端口发送sql语句,mysql拿到sql语句后进行解析,把sql语句中要用到的表文件从磁盘加载到内存当中,进行增删改查的操作,再将文件更新会数据库,如果加了索引的话,那么mysql在加载表的时候会先加载索引文件,把索引文件先加载到内存当中,由于索引文件是hashMap-->O(1)或b+树-->log(n)结构,所以很快就能定位到表中的数据,然后进行操作。

引申问题:

1、什么是socket?

我们日常用的所有通信的底层都是socket,负责和操作系统直接对接网卡[和操作系统内核沟通],也就是Server和Client的对话。

2、索引的作用?

本来在数据库中是按顺序查找的[表文件就是一个链式结构],所以检索数据就非常的慢,所以我们会通过建立索引的方式来提升查找速度:

索引并不是对源文件的数据文件进行排序,它是从表里把一列数据(比如身份证号)拿出来进行排序[文件就会小很多],生成一个新的索引文件;又拿出一列进行排序,形成另外一个索引文件,因为它已经排好序了,所以能快速定位到身份证号(记录了所在行的地址),就能直接定位到数据。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值