关于分库分表的总结记录 什么时候分库分表 分库 磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的IO,降低查询速度 -> 分库和垂直分表。 网络IO瓶颈,请求的数据太多,网络带宽不够 -> 分库 分表 单表数据量太大,查询时扫描的行太多,SQL效率低,CPU率先出现瓶颈 -> 水平分表 概念 水平分表 概念:以字段为依据,按照一定策略(hash、range等),将一个表中 2023-03-15 技术笔记 MySQL MySQL
如何实现一个秒杀系统 最近看了极客时间的专栏如何设计一个秒杀系统,总结一下专栏中重点,方便以后复习查看。 设计秒杀系统需要注意以下几点 数据要尽量少 所谓“数据要尽量少”,首先是指用户请求的数据能少就少。请求的数据包括上传给系统的数据和系统返回给用户的数据 路径要尽量短 所谓“路径”,就是用户发出请求到返回数据这个过程中,需求经过的中间的节点数。比如秒杀商品详情系统需要调用库存系统。解决多节点调用就是把R 2022-05-17 读书笔记
关于MySQL锁的一些思考 锁是什么以及为什么要加锁?1.1锁是什么 所谓的锁其实是一个内存中的结构,如果有锁等待的话在 information_schema.INNODB_LOCKS 看到 大致的结构是: 123456{ "lock_id":"锁id", "trx_id":"事务id,表示这是那个事物生成的", " 2022-03-28 技术笔记 MySQL MySQL,Lock
记录一次WhereIn没有使用到索引的排查过程 背景 字段summary_id是表已经有一千多万数据之后新增的,历史数据默认值为0 ,加好summary_id字段后新增了索引:idx_summary_id sql查询没有用索引,猜测是和索引的基数有关,MySQL in查询能不能用到索引主要是看使用索引的成本和全表扫描的成本那个更低。下面是证实排查过程 没有用到索引的sql语句为 1select * from `btb_bid_user_ 2022-02-13 技术笔记 MySQL MySQL,索引
Tcp小结 tcp 是基于连接、可靠的传输层的应用协议 基于连接 通过3次握手建立连接 客户端(包序号:seq=1 标志位:syn )发起请求 服务端(回复收到N字节之前的数据 ack=1 包序号 seq=1 标志位 syn )回复请求 客户端 (包序号:seq=1 ack=1)回复服务端,建立请求 建立连接后服务端分配 连接缓存 变量信息 通过4次 2021-09-16 技术笔记 网络 网络
Tcp中的GBN Tcp 中的 GBN(go back n ,回退N步) 123456789101112131415161718192021222324252627282930313233343536373839404142$pckData = [1,2,3,4,5,6];// 发送端 用到的变量$n = 4; // 窗口大小$base = 1; // 下一个待确认的分组 表示 此分组之前的 数据组都已收到$nex 2021-09-09 技术笔记 网络 网络
设计模式的一些理论基础 面向对象四大特性 封装 封装是指类利用 public private protected 通过暴露有限方法来实现外部访问类的内部信息或数据,存在的意义:保证数据不被随意修改,提高代码可维护性,仅暴露有限的接口,提高类的易用性 抽象 封装讲隐藏信息,保护数据,抽象就是指隐藏了方法的具体实现,让调用者关系类提供了哪些功能,一般通过 抽象类 或 接口类实现 继承 表示 类与类之间 is-a 的关 2021-09-08 技术笔记 设计模式 设计模式
一些名词 网络七层协议OSI是一个开放性的通信系统互连参考模型,他是一个定义得非常好的协议规范。OSI模型有7层结构,每层都可以有几个子层。 OSI的7层从上到下分别是 应用层 表示层 会话层 传输层 网络层 数据链路层 网卡 物理层 网线 其中高层(即7、6、5、4层)定义了应用程序的功能,下面3层(即3、2、1层)主要面向通过网络的端到端的数据流 MAC层也就是数据链路层 全称 Medium 2018-09-29 技术笔记 网络