摘要:
1.概述 hash join是一种数据库在进行多表连接时的处理算法,对于多表连接还有两种比较常用的方式:sort merge-join 和 nested loop。 为了比较清楚的介绍hash join的使用场景以及为何要引入这样一种连接算法,这里也会顺带简单介绍一下上面提到的两种join方式。 连 阅读全文
摘要:
CPU工作原理 CPU只知道两件事: 从内存中取出指令 执行指令,然后回到1 ❓CPU从哪里取出指令呢? ➡PC寄存器(Program Counter Register)即程序计数器 ⭐存放的是指令在内存中的地址 🐖寄存器是CPU内部用来存放数据的一些小型存储区域 PC寄存器中的地址默认是自动加1 阅读全文
摘要:
hash算法是将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。 1、哈希值是一段数据唯一且极其紧凑的数值表示形式。哈希表中元素是由哈希函数确定的。将数据元素的关键字K作为自变量,通过一定的函数关系(称为哈希函数),计算出的值,即为该元素的存储地址。 2、hash算法的 阅读全文
摘要:
红黑树在二叉树和平衡二叉树的基础上做了点改进。 红黑树有5个特性: 1)每个节点非红即黑 2)根节点为黑色的 3)叶子节点为黑色的空节点 4)红色节点的子节点必为黑色 5)任意节点到叶子节点过程中都有相同数量的黑色节点 也就是说之后无论红黑树怎样变换操作,插入或者删除都需要维持在以上五个特性内。 那 阅读全文
摘要:
僵尸进程:现象:当用ps命令观察进程的执行状态时,经常看到某些进程的状态栏为defunct,这就是所谓的“僵尸”进程。它是一个早已死亡的进程,但在进程表(processs table)中仍占了一个位置(slot) 产生原因:父进程以fork()系统调用建立一个新的子进程,在子进程运行结束后调用的ex 阅读全文
摘要:
由一个根节点及多个节点组成的有层次关系的集合,结构像一颗树。 特点:每个节点有0个或者多个子节点,没有父节点的节点为根节点,非根节点有且只有一个父节点。 二叉树:每个节点有最多两个子节点。 满二叉树:除叶子节点外其他的节点都含有两个子节点。 完全二叉树:有 个节点的满二叉树称为完全二叉树。 type 阅读全文
摘要:
定义:对不属于你的内存进行读写叫踩内存。 分类:根据内存分配机制划分,全局区(.data/.bss),堆,栈踩的内存。 全局区: int array[10]; //全局变量 void function() { for(i = 0; i <=10; i++) //array的范围为[0~9],这里ar 阅读全文
摘要:
宏是由预处理器对宏进行替代,而内联函数是通过编译器控制来实现的 内联函数有类型检测、语法判断等功能,而宏没有; inline函数是函数,宏不是; 对于短小的函数来说,inline函数可以得到一定效率的提升,和c的宏函数相比,inline函数更加安全可靠,这个是以增加空间的消耗为代价的。 阅读全文
摘要:
Linux 进程内存分布: 代码段:存放可执行文件的操作指令 数据段:存放初始化的全局变量和静态变量 BSS段:存放未初始化的全局变量 堆:存放动态申请的内存段 (向高地址扩展的数据结构,频繁申请和释放会使得内存空间不连续,造成碎片影响效率) 栈:存放局部变量 (向低地址扩展的数据结构,不存在碎片) 阅读全文
摘要:
TCP传输每个数据包都会进行确认再发送,包的往返时间越长通信性就越低,网络吞吐量越差。 为了解决这个问题,TCP引入了窗口这个概念。 在往返时间较长的情况下也能控制网络性能下降,它的确认应答不再是一包一包的确认,而是几包(如发1,2,3,4,5 )一起进行确认(则收1,2,3,4,5 ),发送端不必 阅读全文