计算机基础知识整理笔记

数据库

ACID

  • A 原子性:事务只能提交或者未提交
  • C 一致性:执行前后都必须处于一致状态
    • 例如a-1 b+1 如果a-1失败 b+1也必须失败
  • I 隔离性:多个事务之间不互相影响
  • D 持久性:事务一旦提交,改变为永久

语法

left join:

  • on后面的约束语句只会影响右表 如果要对结果表进行筛选必须用where right join同理

in 和 exists:

  • in 是先查询子查询然后内表外表做一个笛卡尔积 子查询比较小情况适用
  • exists是先执行外部表的查询,然后在子查询中做外部查询次数的where 查询 返回True的就返回值 子查询比较大情况适用

其他

  • not in not exists 尽量用not exists
  • floor 下取整
  • ceil 上取整

问题

  1. 脏读:读取未提交的事务:被回滚(不能读取未提交的事务)
  2. 不可重复读:读取了提交的新事务(读取过程中有事务写入)(读取过程中加锁不能写入)
  3. 幻读:读取了提交的新事物(读取过程中有增删)(表锁)

隔离级别

  1. 读未提交:最低的更新级别(一个事务可以读取宁一个事务并未提交的更新结果)可能导致脏读,不可重复度,幻读
  2. 已提交读:只能读取已经提交的事务 可能导致不可重复读 幻读(只有写锁,无读锁)
  3. 重复读:加了读锁(行锁)(只有事务完成后才能进行更新操作)可能读取过程中会有新增数据发生幻读
  4. 序列化:最高事务级别 事务顺序执行

补充知识

  • 行级锁:select * 只给查询到的行加锁 仍可以在表中添加数据
  • select * for update(实现对表加锁):悲观锁
  • 乐观锁:Version比对实现
  • 元组:每行
  • 码:列
  • 一范式:一个字段只能有单个属性
  • 二范式:增加主键
  • 三范式:非主属性不存在传递依赖

计算机网络

进程和线程

  • 进程包含线程:进程是资源分配的最小单位,线程是调度的最小单位
  • 进程间通信:管道,有名管道(可以允许无亲缘关系的进程通信),信号量,消息队列,共享内存,套接字(不同设备间的进程通信)
  • 线程间通信:锁(排它锁,条件变量,读写锁),信号量,信号机制
  • 协程是用户控制的轻量级线程

TCP

  • 3次握手 Client发送连接server,server确认回复,client确认收到再告诉我收到回复
  • 4次挥手 client发送断开,server发送收到断开的消息,server发送确认断开,client发送确认收到断开消息

TCP状态转换

  • tcp初始化为closed状态,然后client发送消息转换为syn_sent状态
  • server被动为listen状态,收到消息然后发送syn和ack+1然后转换为syn_rcvd
  • client收到消息转换为established状态,发送ack+1 server变成established状态,开始传输数据
  • client主动关闭变为fin_wait_1状态
  • server收到syn变成close_wait状态发送ack
  • client收到ack变成fin_wait_2状态
  • server数据传输完成之后发送LAST_ACK or final_ack
  • client等待时间终结变为TIME_WAIT状态发送ack变为closed状态

HTTPS流程

  1. 请求url
  2. 从服务器返回公钥证书
  3. 验证公钥证书
  4. 生成会话密钥用公钥加密会话密钥并发送给服务器
  5. 服务器私钥解密,
  6. 会话密钥加密会话消息
  7. 返回会话密钥加密后的密文,客户端解密
  8. 用会话密钥加密信息发送给服务端,服务端会话密钥解密

拥塞控制:

  • 慢开始:从小到大的逐渐增大发送窗口
    • 到达阈值之前指数增大,到达之后线性增大
  • 拥塞避免:
    • 让拥塞窗口缓慢增大,遇到数据丢失,数据窗口从零开始
  • 快重传
    • 当遇到接收方三次check某个消息,则重发这个消息的下一条消息
  • 快恢复:拥塞控制算法
    • 遇到快重传之后发送窗口将为原来窗口的一半
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值