至2023春以来开发问题阶段性记录总结Part1
阿昌 Java小菜鸡

至2023春以来开发问题阶段性记录总结Part1

Hi,我是阿昌,记录一下针对2022秋至2023春以来的一些开发问题的记录和一些注意点,菜鸡🐔见笑了哈哈。

1、数据库字段默认尽量不要使用null,使用空串“”

在 MySQL 中,空字符串被视为一个非 NULL 的值。因此,使用“IS NOT NULL”查询空字符串时,它会被视为一个具有值的字符串,而不是 NULL 值。这就是为什么在使用“IS NOT NULL”查询时,查询结果不包含空字符串的原因。

2、PDCA原则

PDCA原则,即是计划(Plan)、实施(Do)、检查(Check)、处理(Act)的首字母组合;它是一种科学的可持续化解决问题的解决方案。

3、Excel导出请求超时问题

OSS解决方案:当业务的excel导出下载业务上要求不能异步时,除非写到oss文件系统,再返回前端一个oss文件链接,用户自己再访问这个链接进行下载;
存在的可能问题:过度依赖第三方组件很容易出问题,增加项目风险;

4、减少select对应的字段,只查询想要的字段;

减少select返回字段的成本,减少网络传输压力

5、根据索引去使用group by 可以减少扫描的行数,增加sql查询性能

group by关键词执行流程会使用索引,加快分组的速度,来提升对于查询的性能

6、判断数据库是否可以建立唯一索引,在没做密等处理的情况下,可报错避免一系列的并发问题

可以直接在数据库表层进行避免并发操作导致的异常重复数据问题

7、@Indexed注解,加快项目启动

参考问题:https://www.cnblogs.com/aflyun/p/11992101.html

8、mapper.xml timeout标签可单独配置改sql查询的超时时间

通过mapper层直接进行单独的标签级别的timeout="30"

9、一个对象数据比较工具类

CompareUtils(比较对象字段值变化)https://www.cnblogs.com/gkgkgk/p/16562308.html

10、要避免基础dubbo服务依赖业务服务,如订单/库存服务

这样子如果基础dubbo服务如果出现OOM等问题重启,就需要依赖业务服务才可以完成重启,会增加系统等不稳定性。

 请作者喝咖啡