自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 跟CZY一起深入理解C++(1)-一些基础知识

一些C++小知识

2023-08-04 23:38:01 174

原创 操作系统专栏4-网络专题from小林coding

操作系统网络专题

2023-08-03 16:25:48 225

原创 操作系统专栏2-文件系统from小林coding

操作系统文件管理专栏

2023-08-01 21:39:53 451 1

原创 操作系统专栏2进程管理from 小林coding

操作系统进程管理相关知识

2023-07-31 19:43:18 623

原创 操作系统专栏1-内存管理from 小林coding

操作系统内存管理

2023-07-29 16:08:07 562

原创 Redis八股学习记录1Redis面试常问问题from小林coding

Redis常见八股文

2023-07-20 22:50:45 250

原创 MySQL八股学习记录6-日志from小林coding

MySQL日志

2023-07-18 22:13:15 730 1

原创 MySQL八股学习记录5MySQL锁from小林coding

MySQL锁的运行方式

2023-07-18 20:19:25 969

原创 MySQL八股学习记录4事务的实现from小林coding

MySQL事务隔离级别的实现

2023-07-16 21:35:53 223

原创 MySQL八股学习历程3MySQL数据页的格式from小林coding

MySQL InnoDB数据页格式详解

2023-07-16 15:36:09 231

原创 MySQL八股学习记录3-索引专项from 小林coding

MySQL索引简介

2023-07-15 14:49:15 311

原创 MySQL八股学习过程2行的存储 from 小林coding

MySQL-Compact存储格式

2023-07-14 16:43:27 248

原创 MySQL八股学习总览-from 小林coding

MySQL查询过程总览

2023-07-14 14:30:27 152

原创 MySQL学习记录-连接的原理

确定第一个需要查询的表,称之为驱动表,在驱动表中将记录查询出来之后得到多个记录结果通过驱动表中查询到的结果,挨个到被驱动表中查询也就是说,驱动表只需要访问一次,而被驱动表则需要被访问多次。

2023-04-06 16:24:47 99 1

原创 MySQL学习记录-单表访问方法

优化器会识别到查询中的两个条件,一个等值查询,一个范围查询,选择其中比较行数较少的一个二级索引(一般而言等值查询会优于范围查询),然后对这个二级索引进行查询,回表,在回表的过程中对where中的其他条件进行过滤。这个查询显然不满足上面提到的Union合并的条件,但可以使用sort-union合并。一次查询一般只用到一个二级索引,但在有些情况下会发生索引合并,具体的有以下三种。-先根据key1的索引查到满足的二级索引叶节点,再将这些叶节点根据key1排序。对于查询的讲解都通过如下的建表语句。

2023-04-04 16:14:12 63

原创 MySQL学习记录-数据目录

InnoDB和MyisAM都是将表存储在文件系统上。

2023-04-03 15:21:37 94

原创 Mysql学习记录-B+树索引

不同于InnoDB的索引既数据(所有数据都存放在叶子节点周中),Myisam的索引和数据是分开的,相当于Myisam索引全部都是InnoDb中的二级索引。

2023-04-01 14:43:30 38

原创 Mysql学习记录-索引的使用

还是以上面的SQL为列,如果80%-90%的数据都在’Asa’和’Barlow’之间,那么效率还不如全表扫描,称之为全值匹配,无论WHERE后面的顺序是怎样的,都能够有效的利用起二分法建立的索引(优化器会自动调整好顺序)利用联合索引实际上不需要包含所有的列,只需要包含左边的列就行,从左边第一个不匹配列开始后面的索引行为将失效。得到这些不完整的B+节点后,从中抽取主键ID,再通过聚簇索引查找真正的完整数据,这个步骤是。当左边的列是精确匹配,而紧邻着的列是范围匹配的时,同样可以用到联合索引,原因显然。

2023-03-29 16:02:59 60

原创 Mysql学习记录-InnoDB存储的结构

数据在不同存储引擎中存放的格式是不同的InooDb最常用。

2023-03-28 11:28:03 72

原创 Mysql字符集和比较规则

将上面的client字符集转换成connection后再将connection转化成列使用的字符集。需要注意的是,修改字符集合,那么相应的比较规则改为相应默认的比较规则,反过来同是。Mysql的同一种字符集可以拥有多种比较规则(用于比较字符串的大小)MYSQL一般将该三个字符集设置成一样的,并且提供了一条简单的语句。将查询结果从具体的列转换成result指示的字符集。特别注意的是,服务器级别的比较规则和字符集需要。表级别的是可以修改的,也可以在创建时指定。这条语句会将上文的三个变量设置成一致的。

2023-03-22 17:27:33 67

原创 Mysql学习记录-自定义化运行Mysql查看mysql运行状态

MYSQL学习笔记

2023-03-21 13:54:16 88

原创 Muduo源码刨析-建立连接的acceptor类

构造函数只干三件事:1.设置好监听的socket,2.将处理读的channel绑定到属主loop上,3.设置好readChannel的读回调。handleRead则实实在在的调用了linux系统下的accept,并且掉用通过设置的newConnection设置的回调。listen函数是暴露给外的接口,启动listen,并且通过channel对对方发起的连接的读事件改为感兴趣的状态。实现对连接的accept并且调用持有该acceptor的类的newconnection来创建持有者想要连接。

2023-03-19 15:02:25 29

原创 Muduo源码刨析-完成服务器功能的TcpServer类

Muduo TcpServer的源码刨析

2023-03-19 14:10:50 86

原创 Muduo源码刨析-管理连接的TcpConnection类

Muduo中的TcpConnecton对于读的操作是自动的,而对于写的操作则是需要在msgCallBack或者其他地方手动调用send,则最终会调用sendInLoop,以下是sendInLoop的定义。私有的成员函数(供公有的调用,隐藏细节),主要是确保公有的方法会在TcpConnection的隶属eventloop的创建线程中调用。

2023-03-18 17:00:22 50

原创 Muduo源码刨析-IO多路复用利器的Poller类实现

Poller类是Muduo库中实现IO多路复用的核心类,是一个虚基类,提供接口poll供EventLoop调用,派生两个子类,一个是PollPoller,这是用linux复用poll实现的IO复用接口,一个是EpollPoller,这是用epoll实现的IO多路复用。Channel的idx初始化时值为-1,这会指示Poller去新建一个监听event,而不是更新一个Event的关注事件,update则是将epoll的事件进行更新。Poller类并不拥有Channel类,(如TcpConnection)

2023-03-18 16:07:06 41

原创 Muduo库源码解析-进行事件处理包装的channel类

MuduoChannel类的分析

2023-03-18 15:25:24 31

原创 Muduo网络库源码复盘-核心类Eventloop

Muduo库的Event Loop实现解析

2023-03-18 15:01:03 27

原创 Unix网络编程学习笔记-UNIX域协议与非阻塞IO

情景:客户端connect之后发送一个RST,服务端在该连接进入ESTABLISHED队列后,accept调用前,收到RST并且将连接移除ESTABLISH队列,这个时候accept调用将一直阻塞,服务器无法响应其他客户的连接,解决方案:使用非阻塞的accpet。2.当连接成功时,描述符将可写,当连接错误时,描述符将可读可写(TCP套接字出现错误的默认处理方式)的,Unix提供两类套接字:字节流套接字(类似TCP)和数据报套接字(类似UDP)上执行的客户/服务器通信的一种方法,所用的API与。

2023-03-16 20:13:18 111

原创 UNIX网络编程学习笔记-高级IO函数

Unix IO(read,write以及他们的变体,详见上面的表格),标准IO是为了可移植性创建的,需要考虑其创建的自动输入输出缓冲。3.新的SO_RCVTIMEO和SO_SNDTIMEO套接字选项。1.完全缓冲(只有缓冲区满或者显式调用flush才缓冲)3.setsockopt为套接字设定超时(不是所有的系统都支持)2.行缓冲(碰到换行符或者调用flush才缓冲)涉及套接字的IO操作上设置超时的方法有三种。3.不缓冲(每次调用都直接发生IO)其中flag参数有以下的取值。其中iovec结构为。

2023-03-14 20:33:50 87

原创 UNIX网络编程-IPV4和IPV6的互操作性

这样的做法会让每个客户都创建一个与之相对应的进程。daemon进程创建流程。

2023-03-14 19:51:30 32

原创 UNIX网络编程学习笔记-名字地址转换

DNS中的条目被称为资源记录(resource record)其中port参数必须为网络字节序。功能:通过IP地址查找主机名。:通过name参数得到IP。返回的servent。

2023-03-13 19:43:41 37

原创 UNIX网络编程学习记录-套接字选项

选项为1,若l_linger为0,那么在close该socket时,将直接给对端发送一个RST,而不是传统的四次挥手关闭连接,避免time_wait状态(实际上time_wait是有益的,不该避免)可以设置发送和接受缓冲区的大小,大小至少是MSS的4倍(快速恢复算法确定,对端发送三个重复ACK,需要保存,自己发送的也需要保存副本,共4个,若不能满足,那么将无法激活快速恢复算法),需要注意的是,该值应该在连接建立前就被设置好。若l_onooff选项为0,将关闭该选项,l_lingger选项将没有作用。

2023-03-11 20:56:12 41

原创 UNIX网络编程学习笔记-IO多路复用

如果对某个事件组不感兴趣,那么直接将其fds指针置空,如果都为空那么将获得一个比sleep更加准确的睡眠函数,(sleep以秒计算)timeout指定最多等待的超时时间,readfds,writefds,errfds指定我们关心的读写和错误事件。先开启套接字的信号驱动式IO功能,通过sigaction设置处理行为,当行为可以发生时将收到信号。close有两个局限性,第一是只有在文件计数为0的时候才真正的关闭socket。我们,与上文所述的信号驱动式I/O的区别在于。默认情况下所有的套接字都是阻塞的。

2023-03-10 19:45:39 115

原创 UNIX网络编程学习笔记-信号处理

UNIX网络编程学习笔记

2023-03-03 20:54:56 87

原创 UNP学习笔记(二),Socket编程基础

UNIX网络编程第二章学习笔记

2023-02-28 20:22:59 76

原创 UNIX网络编程学习笔记(一):TCP,UDP

UNP学习笔记自用

2023-02-24 20:49:17 45

原创 Muduo学习历程,线程同步

muduo学习笔记

2023-02-20 15:37:14 53

原创 C++线程工具同步初探

c++用于实现线程同步的标准库组件

2023-02-19 21:25:55 44

原创 Muduo学习历程,线程安全的对象管理

Muduo多线程学习笔记

2023-02-18 16:36:52 92

原创 网络编程,socket基础

网络与HTTP服务器的实现

2022-08-22 13:00:59 146

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除