开发规范和性能优化总结

一、代码规范

1、禁止循环内查询数据库(mysql、mongo)
循环内查库会极大影响程序的响应速度,即使 是mongo这种的
2、强烈建议方法行数不要超过100行
如果方法过大会极大降低可读性,不利于代码维护。不利于内存释放。
建议合理封装代码
3、禁止接口返回数据过大。
接口返回数据要尽量简单,无用的数据不要返回,涉及安全的数据不要返回。
页面上接收数据时也需要花费时间,接收的数据越大,页面响应越慢。
4、禁止投机取巧乱用他人封装的方法
在开发中不要偷懒,不能说现成的方法有你需要的数据就直接使用,需要考虑这个方法是否是最满足你的需求,影不影响性能。有时投机取巧、拿来主义会极大影响系统性能和他人开发
5、禁止功能相似接口或方法复制修改
功能相似的接口或方法,千万不要直接复制修改,需要研究透复制的接口或方法,取其优避其短。直接复制会出现很多意想不到的问题,如因理解不透彻或偷懒引起的性能问题、冗余代码等
6、禁止出现冗余代码
特别是比较耗性能的sql查询,如果不需要了,要及时删掉。
7、合理命名和写注释
8、spring开发中需要关注事务失效场景
9、强烈建议查询数据库包含内存性数据库时,只返回需要的数据。防止大数据返回,在高并发的情况下可能会出现内存溢出
10、建议开发工具中安装阿里规范插件Alibaba Java Coding Guideline或者SonarLint插件
11、强烈建议习惯做非空校验
12、建议参考阿里开发规范进行开发

二、mysql规范

1、禁止循环中操作数据库
2、建议设计表的时候给需要使用的字段提前加合理索引
不要等表大了再加,等表大了再加就有点晚了,如果有大量sql没有使用索引字段,维护起来就麻烦了。用空间换规范
提前加好索引,可以规范开发
3、建立索引时,要整体考虑,优先考虑在常用的字段上加索引,如果多字段常用时优先 建组合索引。
切记不能单以某条sql慢而只为当前sql建索引。
4、单张表不过过多建索引,索引对删除和更新影响比较大,而且消耗空间比较多
5、数据库操作时,合理的使用索引。
如果是组合索引,需按照最左前缀原则
如果一个sql中使用到了多个索引字段,需要考虑是否会出现索引合并的负优化问题
删除和更新时也需要带上索引,避免全表扫描
高并发下的删除和更新禁止直接使用普通索引删除,需先查出主键索引,根据主键索引进行删除,防止死锁
6、关联表不要过多,最多三个
7、关联表时,以小表驱动大表为主。inner join默认被优化成小表驱动大表
8、强烈建议,使用explain查看SQL执行计划。避免写慢sql
9、[查询时只返回需要的数据,如果可以索引覆盖会更好](https://blog.csdn.net/xshsjl/article/details/110560600)
返回数据也会造成性能损耗,返回的数据越多,用的时间就越多
10、禁止大批量的查询,如果查询数据过大,进行分批查询
11、建议参考阿里开发规范进行开发和mysql官方文档的sql优化和索引优化

三、JPA规范

1、批量查询时禁止使用findAll(Iterable var1)
该查询底层是遍历findOne进行查询
在这里插入图片描述

2、禁止使用jpa的delete系列的方法
通过Id删除,是先查询后删除,如果不存在则抛异常。
建议自己在dao中写sql
在这里插入图片描述

批量删除方法,是循环delete(T entity)
在这里插入图片描述

建议在dao中进行手写sql批量删除
3、批量保存或更新大量数据时,禁止使用save方法
底层是使用循环save进行保存的。
建议使用JDBC的批量保存,特别针对大数量保存是,需要分批。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值