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

计算机基础知识复习8.21

执行一条SQL语句的过程

通过TCP三次握手与数据库建立连接,验证用户名和密码,,获取到用户权限

解析SQL,先进行词法分析,识别出关键词select from,再进行语法分析,语法解析器会根据语法规则,判断输入的SQL语句是否满足MySQL语法,如果没有问题,就会创建SQL语法树。

执行SQL,在预处理阶段,会检查查询语句中的表或者字段是否存在,将select*中的*符号,扩展为表上的所有列。优化阶段,会确定查询语句的执行方法,例如多个索引,会选择一个来使用

执行阶段是从执行查询语句,从存储引擎读取记录,返回给客户端

http协议常见状态码

2xx 成功 报文已经收到并被处理

3xx 重定向 资源位置发生变动,需要客户端重新发送请求

4xx 客户端错误 请求报文有误,服务器无法处理

5xx 服务器错误,服务器在处理请求时内部发生了错误

java中的优先队列实现原理

priorityQueue是java基于堆的优先队列实现,能够实现在O(logn)的时间复杂度内实现元素的插入和删除,并且能够自动维护队列中元素的优先级顺序。

分布式事务2pc

2是指两个阶段,P是指准备阶段,C是指提交阶段。分布式事务协调者发送请求时,协调者向参与者,发送事务预处理请求,协调者向所有参与者发送事务内容,询问是否可以提交事务,并等待所有参与者答复。各参与者执行事务操作,将undo和redo信息计入事务日志中(并不提交事务)         如参与者执行成功,给协调者发送yes,执行失败则发送no

提交阶段协调者基于各个事务参与者的准备阶段,来决策是事务提交commit或是回滚,如果协调者收到参与者的失败消息或者超时,直接给每个参与者发送回滚消息,否则发送提交消息。当协调者收到来自所有参与者反馈的ack消息后,即完成事务中断

redlock是实现原理

是让客户端和多个独立的Redis节点依次请求申请加锁,如果客户端能够和半数以上的节点成功地完成加锁操作,则认为客户端成功获得分布式锁,否则加锁失败。加锁成功需要满足两个条件:客户端从超过半数的Redis节点上成功获取到了锁,客户端从大多数节点获取锁的总耗时小于锁设置的过期时间

MyBatis一级缓存和二级缓存

一级缓存是SQLsession级别,在操作数据库时需要构造sqlSession对象,在对象中有一个内存区域数据结构HashMap用于存储缓存数据。对于多次执行完全相同的SQL,MyBatis提供一级缓存来避免直接对数据库进行查询。如果执行更新的SQL语句,再次查询时缓存会失效,不同sqlSession对同一个SQL语句执行相同的查询操作,却对数据库执行了两次相同的查询操作,使用不同的查询条件,也会导致缓存失效

DNS域名解析的工作流程

客户端首先会发出一个DNS请求,问www.baidu.com的IP是啥,并发给本地DNS服务器               本地域名服务器收到客户端的请求后,如果缓存里的表格里能找到www.server.com,则它直接返回IP地址,如果没有,本地DNS会去问他的根域名服务器。根DNS收到本地DNS的请求后,告诉他去.com顶级域名服务器地址找。本地DNS收到顶级域名服务器的地址后,问顶级域名服务器。顶级域名服务器告诉他.server.com服务器地址,本地DNS再去权威DNS服务器查询后将对应的IP地址x.x.x.x告诉本地DNS.本地DNS再将IP地址返回给客户端,客户端和目标建立连接

Java创建对象的方法

使用new关键字

class对象的newInstance()方法。通过class.forName动态的加载类的class对象,然后通过newInstance()方法获得类对象

反序列化来获得类的对象

Object对象的clone方法

Java多态及实现案例

多态是指允许不同类的对象对同一消息作出响应,即同一个接口,使用不同的实例二执行不同操作

class Animal{public void eat(){System.out.println("动物吃饭");}
}class Cat extends Animal{public void eat(){System.out.println("猫要吃饭");}
}public class Demo1 {public static void main(String[] args) {Animal a = new Cat();a.eat();}
}

Redis中RDB和AOF混合持久化

开启方式:通过aof-use-rdb-preamble配置参数控制,yes则表示开启,no表示禁用

RDB有点是数据恢复快,但是快照频率不好把握,AOF优点是丢失数据少,但是数据恢复不快。

开启混合持久化后,前半部分是RDB格式的全量数据,后半部分是AOF格式的增量数据


http://www.mrgr.cn/news/9927.html

相关文章:

  • MySQL——多表操作(一)外键(1)什么是外键
  • 【Oracle问题】ORA-12516:监听程序找不到符合协议堆栈要求的可用处理程序问题处理
  • Windows-Server-2016/2019绕过WindowsDefender
  • 多维度对比社保与个人养老金,个养要不要买?其实社保也是自己买的
  • 文件批量重命名【JAVA】【正则表达式】
  • 餐饮商标怎么注册自己的品牌!
  • 苹果微信误删了聊天记录怎么恢复?4个方法,几分钟就能恢复
  • ICCV2023:Co-DETR:DETRs与协同混分配训练
  • 手撕顺序表
  • AWS EC2的独特优势,让云计算更简单高效!
  • http的host字段
  • Yolo环境搭建(深度学习基础环境)
  • MySQL——多表操作(二)操作关联表(3)删除数据
  • 邀请函 | 深圳网商天下与您相约2024(第五届)全数会
  • 容器化性能测试-通篇讲解 Locust 性能测试
  • 使用C#的异步和依赖注入实现网络数据存储
  • 配置PXE预启动执行环境:Kickstart自动化无人值守安装
  • Django 后端架构开发:JWT 项目实践与Drf版本控制
  • 哪种运动耳机适合骑行使用?精选五款品牌优质的运动耳机推荐
  • 在MacOS上升级Ruby版本