ip字符转换为数字
> 我们平时使用的ip地址都是通过 0~255的数通过 "点号." 进行连接 直接通过字符串来存储 会存在空间浪费 区间查找性能不佳 一般更好的做法是将其存储为32位二进制数值 对应的十进制数 ``` Go package main import ( "fmt" "strconv" "strings" ) /* 将ip转换为数字类型存储 0~2
> 我们平时使用的ip地址都是通过 0~255的数通过 "点号." 进行连接 直接通过字符串来存储 会存在空间浪费 区间查找性能不佳 一般更好的做法是将其存储为32位二进制数值 对应的十进制数 ``` Go package main import ( "fmt" "strconv" "strings" ) /* 将ip转换为数字类型存储 0~2
# **优化的方向** CPU占用 内存泄露 GC 频繁触发 协程泄露 锁竞争 阻塞 **衡量指标** CPU、内存、带宽、磁盘、异常率、响应时间(RT)、吞吐量 - 从多个方面着手分析 找到性能短板 - 优化要从整体考虑,尽量在优化一个方面时,不影响其他方面,或是其他方面略微下降。 - 优化的时候要考虑投入产出比 如果本身性能已经没多大优化空间应
# 高性能排行榜 ## 需求分析 项目需要实现一个基于分数统计的排行榜 假设日活跃用户数量为1个亿 每个用户登录后可以看到自己在名次 同时展示一个自己名次前后5名的其他用户 并显示其他人的分数 ![image.png](http://res.i-cooltea.top/image/20240809230915.png) 初步分析 这里用到以下几个接口 - POS
![image.png](http://res.i-cooltea.top/image/20240615230715.png) ## B+树 一种自平衡的树型结构, 广泛应用于数据库和文件系统; B+树所有非叶子节点用于保存索引数据, 所有值信息都存储在树的叶子节点中。 各个叶子节点通过双向链表相连接, 构成一个有序链表, 用于实现范围查找 *(所有索引节点也会存储在树
## id 每个select对应一个唯一编号, 从1开始自增 - 序号相同 从上往下执行 - 序号不同 由大到小 - 两种混合, 先执行序号大的 同级从上往下执行 - 如果显示NULL 最后执行, 表示结果集 不需要使用它来执行 ## select_type `select_type`:表示 `select` 查询的类型, 主要是用于区分各种复杂的查询, 例如: