05 2019 档案

摘要:1.static模式 static模式始终会保持一个固定数量的子进程,这个数量由pm.max_children定义。 2.dynamic模式 子进程的数量是动态变化的,启动时,会生成固定数量的子进程,可以理解成最小子进程数,通过pm.start_servers控制,而最大子进程数则由pm.max_c 阅读全文
posted @ 2019-05-29 17:03 小二郎** 阅读(838) 评论(0) 推荐(0)
摘要:Pv4数据报的最大值是65535字节,包括IPv4首部。 IPv6数据报的最大值是65575字节,包括40字节的首部。 MTU:IP数据报的最大传输单元,以太网的MTU是1500字节。 IPv4要求的最小链路MTU是68字节。 IPv6要求的最小链路MTU是1280字节。 如果一个IPv6的数据报的 阅读全文
posted @ 2019-05-27 22:27 小二郎** 阅读(2291) 评论(0) 推荐(0)
摘要:散列表的英文名叫"HASH TABLE",也叫哈希表或者HASH表。 散列表用的是数组支持按照下标随机访问的特点,其实就是一种数组的扩展,没有数据就没有散列表 例子: 比如说学校里面的每个学生都有编号,然后有89名学生去参加运动会,我们现在要做一个通过编号迅速找到学生信息,编号是这样的061101, 阅读全文
posted @ 2019-05-27 16:38 小二郎** 阅读(167) 评论(0) 推荐(0)
摘要:数组需要一块连续的内存用来存储数据,而链表恰恰相反,它并不需要一块连续的内存,它通过指针将不连续的内存块串起来。 链表结构很多,我们说下最常见的,单链表,双向链表和循环链表。 我们先看比较简单的单链表 如上图可以看出来,图中的每个节点不仅需要存储数据,还需要记录一个指向下一个节点的指针,如图所示,我 阅读全文
posted @ 2019-05-27 15:49 小二郎** 阅读(497) 评论(0) 推荐(0)
摘要:5个基本线程函数 pthread_create函数 当一个程序启动时,这个时候主线程也叫初始线程就创建了。其余线程则有pthread_create函数创建。 #include <pthread.h> int pthread_create(pthread_t *tid, const pthread_a 阅读全文
posted @ 2019-05-25 14:52 小二郎** 阅读(949) 评论(0) 推荐(0)
摘要:1.union执行过程 首先我们创建一个表t1 然后我们执行一下这条语句 首先说下union的语义,union的语义是取两个结果的并集,重复的保留一行,然后我们来看下explain的结果,第二行的key=PRIMARY,说明用到了主键索引。 第三行的Extra的Using temporary说明用到 阅读全文
posted @ 2019-05-24 12:15 小二郎** 阅读(4053) 评论(1) 推荐(0)
摘要:1.TCP迭代服务器程序 这种方式就是服务器同一时间只处理一个客户端的请求,这个请求处理完以后才转向下一个客户请求。当然这样的服务器程序比较少见,这就像一个公司只能一次处理一个客户,后面的客户只能等待,这样的话肯定是不行的,效率太低 了,但是要是从进程控制角度来看这种方式是最快的,因为它没有执行进程 阅读全文
posted @ 2019-05-23 01:48 小二郎** 阅读(573) 评论(0) 推荐(0)
摘要:上一节已经用编译的方式搭建好了一个nginx,链接在下面 https://www.toutiao.com/i6693130510777975300/ 然后这次我们把上次搭建好的nginx作为反向代理的上游服务器,这里我把listen改成了 127.0.0.1:80表示这台nginx只能被本机访问 下 阅读全文
posted @ 2019-05-22 11:02 小二郎** 阅读(1472) 评论(0) 推荐(0)
摘要:我们先说下定义,比如说我们要在a字符串中查找字符串b,那么a就是主串,b就是模式串 我们把主串的长度记为n,把模式串的长度记为m,n>m BF(Brute Force)中文名:暴力匹配算法,朴素匹配算法 简单的说BF的算法就是在主串中查找起始位置是0,1,2,,,n-m个且长度为m的n-m+1个子串 阅读全文
posted @ 2019-05-21 11:16 小二郎** 阅读(291) 评论(0) 推荐(0)
摘要:在centos下有两种安装nginx方式,一种是yum install这种方式,还有一种是编译安装,当然第一种方式更简单,但是有一定的缺点,比如说我们需要使用特定的第三方模块,这个时候就需要用编译安装这种方式了。 步骤1 下载nginx wget http://nginx.org/download/ 阅读全文
posted @ 2019-05-20 23:39 小二郎** 阅读(1574) 评论(0) 推荐(0)
摘要:假设我们要查询一个市民表中城市=杭州的所有人的名字,并且按照名字排序 那么sql语句可以这样写 接下来我们看下explain的结果 图中的Extra这一列下面的Using filesort表示需要排序,MySQL会为每个连接分配一块内存用于排序,就是sort_buffer,sort_buffer_s 阅读全文
posted @ 2019-05-20 16:14 小二郎** 阅读(937) 评论(0) 推荐(1)
摘要:内核的启动时从main.c这个文件里面的start_kernel函数开始的,这个文件在linux源码里面的init文件夹下面 下面我们来看看这个函数 这个函数很长,可以看个大概过去 这个函数里面我们会看到有很多的各种init,也就是初始化,我们只说几个重点操作 首先来看下这个函数set_task_s 阅读全文
posted @ 2019-05-20 12:01 小二郎** 阅读(2841) 评论(0) 推荐(1)
摘要:数组概念: 数组是一种线性表数据结构,它用一组连续的内存空间,来存储一组具有相同类型结构的数据。 关键词: 线性:顾名思义,线性表就是数据排成像一条线一样的数据结构。每个线性表上的数据最多只有前后两个方向。其实除了数组,链表,队列,栈等也是线性表结构 而与它相对立的概念就是非线性表,比如说二叉树,堆 阅读全文
posted @ 2019-05-19 15:43 小二郎** 阅读(329) 评论(0) 推荐(0)
摘要:为什么会发生调度? 因为cpu是有限的,而操作系统上的进程很多,所以操作系统需要平衡各个进程的运行时间 比如说有的进程运行时间已经很长了,已经占用了cpu很长时间了,这个时候操作系统要公平 就会换下一个需要运行的进程。 举个例子 公司只有一个饮水机用来接水,有很多人排队,某个人接完了一杯水,又接下一 阅读全文
posted @ 2019-05-19 11:36 小二郎** 阅读(1523) 评论(0) 推荐(0)
摘要:首先我们说一下大查询会不会把内存打爆? 比如说主机内存有5g,但是我们一个大查询的数据有10g,这样会不会把内存打爆呢? 答案:不会 为什么? 因为mysql读取数据是采取边读边发的策略 select * from t1 这条语句的流程是这样的 1.读取数据放入net_buffer中,net_buf 阅读全文
posted @ 2019-05-13 12:12 小二郎** 阅读(1195) 评论(0) 推荐(0)
摘要:行锁顾名思义,就是针对单行数据加锁,在mysql中,锁的实现是由引擎层实现的,MyISAM引擎就不支持行锁 不支持行锁就意味着并发控制只能使用表锁,也就是说同一时间,在这个表上只能有一个更新在执行,这就会 影响到业务的并发度。InnoDB是支持行锁的,这也是MyISAM被InnoDB替代的重要原因之 阅读全文
posted @ 2019-05-12 22:52 小二郎** 阅读(5723) 评论(0) 推荐(1)
摘要:首先,我建了一个表t2,里面有1000条数据,有id,a,b三个字段,a字段加了索引 然后我又建立一个t1表,里面有100条数据,和t2表的前一百条数据一致,也是只有id,a,b三个字段,a字段加了索引 如下图 然后我们看这条语句,为了不影响效果,这里我用了STRAIGHT_JOIN ,也就是在这条 阅读全文
posted @ 2019-05-12 18:54 小二郎** 阅读(305) 评论(0) 推荐(0)
摘要:linux的进程分为两种 1.实时进程,优先级高,操作系统会优先执行这种进程 2.普通进程,大多数的进程都是这种进程 调度策略 unsigned int policy; 调度策略的定义 #define SCHED_NORMAL 0#define SCHED_FIFO 1#define SCHED_R 阅读全文
posted @ 2019-05-12 14:59 小二郎** 阅读(667) 评论(0) 推荐(0)
摘要:无向图 图1 图1中字母叫作顶点,每个顶点和其他顶点连接的线条叫作边,每个顶点所拥有的边的个数叫作度 这个概念有点类似微信的好友结构 图中每个顶点代表了微信好友中的每个人 边代表了每个人(顶点)对应有哪些好友,A-C的意思就是A是C的好友,C也是A的好友,A-D的意思就是A是D的好友,D也是A的好友 阅读全文
posted @ 2019-05-10 11:21 小二郎** 阅读(323) 评论(0) 推荐(0)