- 博客(7)
- 问答 (1)
- 收藏
- 关注
原创 慢SQL优化:PageHelper自动生成count语句
做排行榜的查询时,即使做了分页,查询速度也非常慢,第一版优化了sql和索引后提速了一半,但是效率仍旧低下,表不是非常大,不该查询如此缓慢,在接入链路追踪后发现,优化后的两段sql执行速度皆在100ms左右,速度还可以,拖累速度的主要为最先执行的一段sql,执行了2s+但是代码中,并未有这段sql的查询,仔细观察sql后,发现其关联查询以及查询内容都跟第一段sql查询一致,加上table_count这个查询字段,猜测为PageHelper自动生成了count语句,查询数据总页数,优化后,提速不少。
2024-10-24 11:16:34
444
1
原创 关于mysql的datetime类型存储时导致计算时间偶发性多1秒
但是查询数据库,发现保存的日期是2024-10-24 10:24:28,多了一秒,若前端刚好也在27s查询的时候,就会出现+1天的情况,几番查询后发现,数据库的日期类型为datetime,未设置精度,默认会格式化为yyyy-MM-dd HH:mm:ss,对于毫秒则会四舍五入,导致数据库比实际存的时间会多1s不到。购买某个物品,在购买成功后,立即插入用户资产表,并且前端再一次查询,在查询物品过期时间时,发现刚保存数据立即查询,偶发性会多一天,随即排查原因,计算天数的方法如下。
2024-09-24 11:26:01
552
原创 SQL关于GROUP的配置
然而,MySQL 在某些配置下会放宽这一限制,允许选择其他列,此时对于非分组列,它会返回每个分组中的任意值(这通常是分组中的第一个值)。这种行为可能会导致不确定的结果,因为不知道会返回哪一行的数据。如果在使用 MySQL,并且没有启用 ONLY_FULL_GROUP_BY 选项,那么第一个查询就不会报错,即使 SELECT * 选择了所有列,而 GROUP BY 仅按 MEMBER_ID 分组。但是,如果启用了 ONLY_FULL_GROUP_BY,这个查询就会报错,因为它违反了 SQL 的分组规则。
2024-08-16 17:06:34
591
原创 Comparator重写
Comparator 是 Java 中的一个接口,用于定义对象的排序顺序。这个接口的核心方法是 compare,用于比较两个对象并决定它们的排序顺序。里面提供了ComparingDouble,comparingInt等直接比较方法,也提供了nullsLast,nullsFirst()等方法,要定制Comparator方法,就要重写里面的Compare方法。重写Comparator就需要重写里面的compare方法。如果对象为空,则优先于非空对象的排序。
2024-07-29 16:35:40
380
原创 依赖包@PostConstruct初始化无效排查
业务包引用了一个公共包,公共包里使用了@PostConstruct赋值属性,项目启动后报错,断点排查项目启动时未进入此方法,多方排查后,发现是启动类未添加@ComponentScan注解,导致类注册失败。
2024-07-24 11:26:49
400
1
空空如也
redis大批量查询key
2021-09-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人