获得徽章 0
#青训营笔记创作活动#
1月17日 打卡day17
一条 SQL 语句的执行流程从客户端建立与数据库服务器的连接开始,一般会从数据库连接池中取出一个数据库连接,然后数据库服务器会从自己的线程池取出一个工作线程与该连接绑定,然后SQL接口接受SQL语句,对SQL语句查询缓存、解析器解析,优化器生成执行计划,调用存储引擎API,进行磁盘IO操作,返回SQL接口数据,然后再将数据封装为TCP数据包交给客户端。
展开
评论
#青训营笔记创作活动#
1月13日 打卡day16
对于 mysql 来说,每一个事物都是一个工作线程,当操作共享数据时,为了确保访问的线程安全性,就会加锁,但如果访问的顺序不当,就有可能会导致死锁。所以需要深入了解mysql的锁机制,同时mysql还借助mvcc机制,和锁机制一起实现不同的事务隔离级别。
展开
评论
#青训营笔记创作活动#
1月11日 打卡day15
IDEA 本身就是对于开发帮助很大的工具,文中提到了一些十分好用的插件的安装方法以及使用方法,通过这些插件可以大大加快开发效率,同时开发过程更加顺畅。
评论
#青训营笔记创作活动#
1月9日 day14
文章主要介绍了服务端、客户端的区别,还有软件架构的演变,同时感觉最有用的是如何学习一门新语言或者可以说是新技术——三刷策略,三刷官方文档,是很有用的建议。
评论
#青训营笔记创作活动#
1月8日 day13
使用缓存的好处在于可以减少对数据库服务器访问的压力,同时也加快服务器处理请求的速度,对应对高并发场景作用很大。但是使用缓存,需要注意缓存雪崩、缓存击穿、缓存穿透以及缓存和数据库的一致性问题。
展开
评论
#青训营笔记创作活动#
1月7日 day12
如果某一个对象为 null,那么调用它的方法就会抛出 NullPointerException,所以有时候可能需要加入大量的 if 判断语句来判断对象是否为空。而 java8 中新出现的 Optional 类无疑解决了这个问题,同时还融入了函数式编程的特点,让代码更加优雅美观高效。
展开
评论
#青训营笔记创作活动#
1月6日 day11
IDEA里面的debug十分好用。作者写的文章里面介绍多种特别好用的debug技巧,同时又不常为人所知的。比如某个断点只执行1次,只有满足某些条件才进入断点,多运行了几步可以回退,都是非常有用却又之前并不知道的小技巧。
展开
评论
#青训营笔记创作活动#
1月5日 day10
使用wireshark来抓包,查看抓取到的数据报确实可以更加直观地了解网络传输的过程。文章通过如何获取TLS握手过程中产生的三个随机数:client random、server random、pre_master_key,然后来解密HTTPS报文,也是在借助这个例子去阐述HTTPS协议加密报文的原理,让读者对HTTPS协议的原理更加了解,同时也对如何抓包有了一个清晰的了解。
展开
评论
#青训营笔记创作活动#
1月4日 day9
很多大厂都会对参与积极拥抱开源社区的候选人青睐有加,不过拥抱开源社区除了需要专业水平足够之外,还需要熟练掌握对git仓库的相关操作。通过这篇文章,可以了解到一个对开源仓库提出的pr的过程,fork->clone到本地->创建新分支->开发合并到主分支->推送至远端分支->创建pr->等待pr merge。如果原仓库有修改,可以将原仓库设置为upstream仓库,fetch到本地之后再进行合并。
展开
评论
#青训营笔记创作活动#
文章从Redis的数据类型、持久化、事务、集群以及一些常见的业务场景,同时还对与数据库的一致性问题、缓存穿透、缓存击穿、缓存雪崩等常见的问题进行了具体的论述,读完之后能对Redis的常见问题有一个清晰的了解。
评论
#青训营笔记创作活动#
1月1日 day7
TCP特点:面向连接、可靠、基于字节流;UDP特点:无连接、不可靠、基于消息报。TCP为了实现可靠性,引入了重传机制、基于滑动窗口实现的流量控制、拥塞控制、分段机制以及乱序重排,并在两端实现 了一套复杂状态机。而UDP没有实现这些,因此UDP一般比TCP速度更快。
但因为UDP没有实现分段机制,只能在IP层分片,如果某一个消息片丢失,UDP层并不知道哪一个消息片丢失,只能重传整个消息报。而TCP只需要重传一个消息段。在这种情况下,UDP的速度会更慢一些。
展开
评论
#青训营笔记创作活动#
12月31日 day6
产生跨域问题的原因是浏览器为了保证资源的安全性,所以只允许协议、域名、端口号都相同的同源请求访问,否则就会拒绝访问,产生跨域问题。如今很多项目都是前后端分离,前端和后端项目分别部署在不同的服务器,自然也会产生跨域问题,所以解决跨域问题的方法还是很重要的
展开
评论
#青训营笔记创作活动#
12月30日 打卡day5
这篇文章介绍了一共13条后端程序员应该有的好习惯,读完之后真的是收获满满,比如以前打印日志这件事其实不重要,但是这篇文章却专门强调了打印日志的重要性。希望自己在去实习的时候,能够用上这些小技巧,培养自己的好习惯!
展开
评论
#青训营笔记创作活动#
12月29日 打卡day4
很多先进的技术,都来自于国外,所以技术文档都是英文,包括一些很有价值的论文,以及一些国外大学非常出名的公开课和它配套的lab,都需要英文阅读能力。所以必须要克服阅读英文文档的恐惧心,耐心去阅读文档,逐渐培养英文文档能力,才可以更快地提升自己的技术水平。
展开
评论
#青训营笔记创作活动#
12月28日 打卡day3
502是由网关代理发出的,客户端请求发给网关代理,网关代理收到服务端的无效响应(收到服务端的 FIN 报文或者 RST 报文),便会返回给客户端502状态码。主要可能有以下原因:
1.服务器过早断开连接:(1)服务端设置的超时时间较短,还没来得及返回结果,就断开连接了。(2)服务端进程崩了,查看服务器的CPU是否出现过断崖式的下跌。
2.网关代理那里配置的服务器地址ip不存在,去请求一个不存在的服务,服务器内核便会响应 RST 报文。
展开
评论
#青训营笔记创作活动#
12月27日 打卡day2
ip地址分配有两种分配方式,一种是静态分配,一种是DHCP动态分配。DHCP协议是应用层协议,传输层基于UDP协议。每次动态申请ip地址有以下流程:
1.DHCP Discover:客户端第一次并不知道DHCP服务器的地址,因此发送广播报文请求ip地址,目的地址255.255.255.255。
2.DHCP Offer:只有DHCP服务器会回应,从空闲ip池子中拿出一个ip地址,通过广播的形式发送给客户端。Offer报文里会有ip地址、子网掩码、路由器地址、DNS服务器地址。
3.DHCP Request:客户端再次发送广播报文,表示申请使用该ip地址。
4.DHCP ACK:客户端通过广播的形式回复客户端,可以使用该ip地址。
如果协议栈在ip地址完成初始化之前可以支持单播,那么可以将Discover/Request报文中的Broadcast flag标志位设置为0,服务器在回复Offer/ACK报文的时候,就可以以单播的形式回复。
为了避免分配的ip地址重复,PC机会发送三次无偿ARP消息,填好自己的ip地址和mac地址(普通ARP消息用于询问mac地址,只会有ip地址,不会填写mac地址),通知本地网段内的其他PC机,缓存到其他机子的ARP缓存中。如果发生冲突,重新进行DHCP分配ip地址。
展开
评论
#青训营笔记创作活动#
12月26日 打卡day1
分表的直接原因是单表容量超过2GB会导致性能大幅度下降,而具体多少行数据需要具体场景具体分析。主要基于以下关键点来考虑:
1.MySQL每个节点(页)大小默认为16KB
2.页格式与行格式
4.每一行数据的字段的数据类型,重点关注主键
三层B+树的数据存储范围为一百二十多万条~将近五亿条,所以在考虑分表的时候要结合表的实际情况来考虑分表临界点。
展开
评论