按时间归档:2020年
-
【每日阅读】2020年12月08日-mysql库锁、表锁、MDL锁,行锁
全局锁 全局锁就是对整个数据库实例加锁。MySQL 提供了一个加全局读锁的方法,命令是 Flush tables with read lock (FTWRL)。当你需要让整个库处于…
-
【每日阅读】2020年12月07日-socket编程步骤小计
TCP 服务端需要bind、listen、accept。因为要监听哪个网卡的数据包必须在bind时告诉操作系统内核。 UDP 客户端和服务端都是bind之后就可以开始发送和接收数据…
-
【每日阅读】2020年12月03日-TCP流量控制与重传机制
流量控制 TCP流量控制是通过滑动窗口算法来控制的,每次ACK时客户端会返回一个窗口大小给服务端,服务端根据窗口大小控制自己眼瞎该发送多少数据给客户端。 窗口将服务端的数据分为4部…
-
【每日阅读】2020年12月02日-TCP三次握手四次挥手
下面例子都是A请求B。 为什么三次握手? 如果只有两次,则很可能第二次回应A根本没有收到。 为什么四次挥手? 因为A请求了结束,必须得到一次回应才能认为真的挥手成功了。B请求结束,…
-
【每日阅读】2020年12月01日-MySQL事务和索引
事务的隔离性 “可重复读”的意思是在事务开启后,无论其他事务将数据修改成什么样了,多次读数据仍然是事务开始时的样子。实现的方式是借助了回滚日志(undo log)。 autocom…
-
【每日阅读】2020年11月30日-mysql的select是如何执行的
mysql整体上可分为server层、存储引擎层。 更详细的,按先后顺序就是连接器、查询缓存、分析器、优化器、执行器。 每次都先和连接器沟通,如果连接成功,再查看是否有缓存,如果没…
-
【每日阅读】2020年11月29日-如何使系统更易扩展?
一个词:拆分。 其实也就是目前微服务的思路。根据业务将系统拆分成一个个子系统,然后子系统使用自己的数据库。每个数据库还可以再进行更细粒度的分库。 系统拆分的越多,每个部分都有自己的…
-
【每日阅读】2020年11月27日-系统获得高可用的思路
大多数线上执行的系统应该是要保持在3个9和4个9之间的高可用性。毕竟5个9真的是太难了,我们接收到报警到登录到线上机器的时间应该都超过了5分钟。 高可用主要从两方面考虑,一方面是软…
-
【每日阅读】2020年11月26日-对网络多了一些了解
最近几天在看极客时间的《趣谈网络协议》,感觉对网络更了解了。 最近看到讲底层包发送的一些机制。每个包发送的时候,都会被数据了链路层、网络层、传输层分别加上MAC头,IP头,TCP头…
-
【每日阅读】2020年11月25日-网络为什么分层
因为复杂的软件都需要分层,分层能更好的实现。每层只关注自己该关注的问题,不需要操心别人的问题。这就和MVC架构一样,M注重表达数据,V注重展示数据,C注重操作数据。每部分都注重自己…