- 博客(13)
- 收藏
- 关注
原创 分页查询的两种写法,PageByPageNo、PageByInstId
1.性能考虑:当要查询的表数据量非常大时,比如说数百万甚至更多数据时,常规的 Limit 和 Offset 进行分页,随着 Offset 增大,数据库需要跳过越来越多的行数来获取指定页的数据,这会导致性能下降。而主键通常是有索引的,利用主键进行分页,可以快速定位到起始位置。3.分布式或者高并发场景下,因为数据可能分布在不同的节点上,或是多个用户同时请求分页时,主键索引能更好的在不同节点获取数据,也能减少缓存失效的情况(主键索引查询路径相对固定,更容易缓存相关的查询结果,以此减少缓存失效的情况)。
2025-04-24 16:39:52
166
原创 Redis RDB持久化发生的情况
周一周一,精神归西看到代码里有 Redis 相关代码,突然想起来 RDB 持久化,小小回忆一下,时间久了怕忘了。1.手动 save 命令,使用主线程备份当前数据到磁盘,阻塞当前服务,一般不会这样使用。2.手动 bgsave 命令,主线程 fork 一个子进程出来,然后由子进程进行 save 操作,不会阻塞。3.使用配置文件被动触发,在配置文件 redis.conf 中添加配置,如 save 20 3,表示希望在20秒内如果写入了三次数据,就进行备份,本质上是 redis 自己的定时任务执行的。4.关
2025-03-17 17:53:42
185
原创 总结一下工作中常用的Git命令
git push:提交到当前本地同源orign远程分支 或者 git push orign 分支:推送到指定远程分支;git add ./ :提交当前目录下全部文件 或者 git add “fileName”: 提交指定文件。git push --force orign:强推至指定远程分支(会清空commitid之后的全部记录)git push :提交至远程仓库(不会清空commit记录,新增一条commit记录)git reset --hard ‘commitId’ :回滚至指定commit。
2025-02-20 10:19:45
142
原创 LeetCode——380. O(1) 时间插入、删除和获取随机元素
实现RandomizedSet 类:RandomizedSet() 初始化 RandomizedSet 对象bool insert(int val) 当元素 val 不存在时,向集合中插入该项,并返回 true;否则,返回 false。bool remove(int val) 当元素 val 存在时,从集合中移除该项,并返回 true;否则,返回 false。int getRandom() 随机返回现有集合中的一项(测试用例保证调用此方法时集合中至少存在一个元素)。
2025-02-19 15:28:31
327
原创 宽表和窄表
优点:包含的维度高,方便统计、分析和展示,减少了查询时的关联操作。缺点:因为包含的列比较多,很多字段可能没有值,导致冗余比较高,占用的存储空间也更高。
2025-02-11 10:04:57
225
原创 Redis学习——day2
同时 intset 有升级(upgrade)机制,如果目前存的编码类型是16位大小,这时候存入一个比如说42767,那么编码类型就会升级为32位,同时为了保证 intset 的大小顺序性,存的数据也会进行位置移动,这个时间复杂度为 O(n)。注意的是,只有升级,没有降级,也就是说,如果存入的是1,2,3,4,42767。这是因为 ziplist 具有性能瓶颈,ziplist 的结构体保存了上一个数据所占的大小,而在新的 listpack 中,结构体不再保存上一个数据所占的大小,而是保存自身大小。
2024-10-25 11:24:43
161
原创 注册中心从Nacos改为Eureka的方法记录
OK,这就是改为 Eureka 的方法,很简单。从我的角度来看,Nacos 是更有发展前景的,但是部分老项目可能还是 Eureka。上面的地址是我本地起的 Eureka 服务地址,如果想本地启动,需要本地起一个服务。第二步,启动类添加 Eureka 注解 @EnableEurekaClient。最后要注意的是,需要把之前 Nacos 的依赖删除或注释掉。
2024-10-21 09:23:12
336
原创 解决 Spring Boot 项目libs目录下添加jar包后,打包未成功的问题
项目下 pom 文件的 plugin 标签下添加 includeSystemScope 属性为true。
2024-10-17 14:39:37
327
原创 Redis 学习记录—Day1
这个从 Redis 的设计目的就可以看出来,Redis 是一个对速度高度敏感的数据库,考虑 Redis 的一切设计,都可以从提高速度来考虑。同时我们知道 C 字符串是有内存溢出风险的,Redis 字符串因为有 free 值来表示目前可用的空间,当我们对 SDS 做扩大时,会先去判断这个大小能不能满足需要,这样就可以避免内存溢出。简单来说,SDS 不用于 C 字符串的地方,就在于他提供了两个数值,一个表示目前已经使用的长度,另外一个表示目前还剩余的空间。对于 SDS 的所有问题,都可以从这个结构去考虑。
2024-10-16 09:44:55
343
原创 Swagger 3.0版本 http://localhost:8080/swagger-ui.html 报404 问题解决
swagger 3.0 本地报错404
2022-07-31 21:27:54
1045
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人