开发优化

切记:磨刀不误砍柴工!

人性化就是需求再差有人用,功能再强无人问;

价值就是有人用,用的爽,有社会贡献;

优势就是你有的功能我也有,你没有的功能我还有;

所以选择凯铧互联做项目的开发优化是不二的选择!

我们能做的有:

接口优化
1、参数判断(null、非法、权限、是否存在)

2、返回值过滤前台不必要的数据

3、可批量就不要单条,切记更、删、改添加事务

4、锁加的接口最好是最小的业务逻辑,避免锁表

5、开发禁忌循环访问数据库

6、接口响应速率最大200ms,比较合理

编程bug

1、增加:a数据必选判空;b数据类型准确;c数据长度切勿超过数据库

2、删除:a判断数据所属人;b数据是否有关联;c数据状态是否允许删除

3、修改:a改前比查询属于当前登录人、是否为空、是否允许更新;b只做必要的数据修改dto,非必要不允许全部更新

4、查询:验证属于当前登录人,返回需要数据vo

程序优化

1、减轻数据库压力:a不常修改的数据且频繁访问的可存redis,如取用户信息、配置等;b避免代码里面循环数操作据库,可采取批量方式

2、删除多余依赖:目前系统开发多是采用pom.xml依赖,将不必要的依赖删除

3、重复代码封装:冗余代码进行封装,如service接口返回,如工具类

4、慎用异常:非必要少用try-catch,会增加系统性能运行耗时。

5、对象、参数定义:a使用局部变量访问速度高于类的成员变量;b若方法必须使用的类、参数,可先定义后使用(习惯问题)

数据库优化
1、需要考虑数据库版本兼容性

2、字段遵循存在即合理规则,设计字段长度、类型准确

3、查:一次查,能连表,少子查,条件准,可分组,返可用,避免*,适索引

4、数据表一把500W以上可采用分库分表

5、并发插入另一种办法可以采用数据库唯一键限制

sql规范

1、基本设计规范
a、使用Innodb存储引擎(5.6之后);b、字符UTF-8;c、表和字段注释;d、单表数据量500W以内;e、禁止在数据库中存储图片,文件等大的二进制数据
2、字段设计规范
a、优先合适的存储类型;b、避免使用text、blob类型、ENUM类型;c、避免定义null列;d、时间使用timestamp(4字节)或datetime(8字节);e、金额相关decimal类型
3、索引规范
a、单表索引不超5个;b、Innodb表必须要个组件,建议使用自增ID,但安全性需要考虑一下;c、尽量避免使用外键约束,外键虽然保证数据参照完整性,但印象写操作降低性能,建议在业务端实现
4、开发规范
a、充分利用表上的存在的索引,避免双%的like查询;b、数据库设计考虑扩展问题;c、连接不同的库使用不同的账号降低业务耦合度;d、select *少有,子查询优化为join操作
e、join(mysql最大运行61张表,建议不超5个);f、减少数据库交互次数,一条sql能解决的事情尽量不要分多条;g、in替代or(in值不超过500);h、不推荐使用函数转换如时间;i、在明显不会有重复值时使用union all而不是union;
5、行为规范
a、超过百万行批量增删改操作要分批进行,避免主从时延,避免产生大事务造成锁表;b、禁止程序使用账号赋予super权限,程序连接数据库遵循权限最小原则