开发规范及mysql笔记
1缓存相关常量放在类 CacheConsts 下;系统配置相关常量放在类 ConfigConsts 下
2接口过时必须加@Deprecated 注解,并清晰地说明采用的新接口或者新服务是什么
3不能使用过时的类或方法 如:java.net.URLDecoder.decode(str)-->decode(s,enc);
4字段上不加函数或表达式,业务要求除外
5所有非外连接 SQL(即 INNER JOIN),请把关联表统一写到 FROM 字句中,关
联条件与过滤条件统一写到 WHERE 字句中
6出于代码的可读性原因,所有外连接 SQL 语句中,请一律使用 LEFT JOIN,禁用
RIGHT JOIN
7 按效率从好到差排序:
字段上有索引 : EXISTS, IN, JOIN
字段上没有索引: JOIN, EXISTS ,IN
8多表 Join 的分页语句,如果过滤条件在单个表上,需要先分页,再 Join
一些多读可用volatitle修饰
LongAdder adder = new LongAdder();
adder.add(1);
多写的情况:解决多线程内存不可见问题,性能较好(减少乐观锁的重试次数)
MultiValueMap
MultiValueMap<String, Object> postParameters = new LinkedMultiValueMap<>();
一个key对应多个value
主键id用雪花算法 IdWork
mysql规约
注意点: 库名... 表级中文注释
一些多读可用volatitle修饰
LongAdder adder = new LongAdder();
adder.add(1);
多写的情况:解决多线程内存不可见问题,性能较好(减少乐观锁的重试次数)
exsits not exsits 应换成 '等连接' '外连接' 来查询
先连接后分页与先分页后连接性能问题
变量的数据类型问题