新系统开发设计

从系统优化总结:

1、数据库设计--表、字段、类型

 -- 根据业务处理设计 。比如:是否需要主从表,哪些存主,哪些存从,

 主表数据:业务主流程数据

 从表数据:业务分支流程数据

 -- 性能设计。比如 表示时间可以拆分:日期、时间用字符串类型, 查询类型转换等。

 比如:考虑数据冗余,空间换时间。

 2、程序设计

 -- 健壮、灵活、可拓展、可复用

 3、sql的性能

 -- 常见的sql性能优化注意事项要注意--
--1、避免全表扫描   2、让索引生效 3、关联查询依小为先
1、优先考虑使用等号(=)操作;其次考虑使用大于等于(>=),小于等于(<=)操作;然后再考虑大于(>),小于(<)操作

2、减少使用LIKE操作,避免使用不等于操作

 3、谨慎使用排序(SORT BY)和分组(GROUP BY)

 4、使用LIKE的时候,应该使用右匹配(A%),而避免使用左右匹配(%A%)和左匹配(%A),使用右匹配时尽快能提供较多的数据降低查询开销

 5、使用AND时,筛选结果集小的表达式应该置于AND左侧,使用OR语句时,筛选结果集大的表达式应该列于OR左边

 6、避免不必要的排序。使用UNION ALL代替UNION,添加恰当的索引,或在DISTINCT,GROUP BY,ORDER BY子句涉及的列上创建索引

 7、避免对三个以上的字段排序

 8、避免对长度超过30的字符字段进行排序

 9、避免在排序字段上添加表达式

 10、不使用任何聚合函数情况下,使用DISTINCT代替GROUP BY

 11、根据业务逻辑选择最低粒度的隔离级别。在允许脏读的前提下,在查询语句中应该使用WITH UR,避免不必要的锁表。

 12、IN中参数个数避免超过20个

 13、查询语句的结果字段应该书写明确的列名,不应该使用通配符

 14、不应该在代码使用DDL相关操作

 15、查询语句应该设置有效的限定条件,返回预期的结果集,避免返回过大的结果集

 16、使用SELECT...FETCH FIRST n ROWS ONLY限制结果集大小,建议100个以内

 17、用于比较的数据应该使用相同的数据类型,避免发生数据转换

 18、SQL语句变量应该使用参数化,尤其是id类型,时间类型字段等

 19、避免对索引字段进行函数操作

 20、SQL中的子查询嵌套层次避免超过4层

 21、查询表达式左边避免出现函数以及其他运算表达式,必须的表达式应该用替代的方法在右边实现

 22、所有的SQL应该尽可能提前在测试环境上进行优化和调试。获取必要的执行计划和运行时间信息

  

4、数据存储持久化

 -- 事物的管理:力度、颗粒、传播性

 -- 尽可能原子提交,提高数据存储速度、业务处理速度

5、数据查询

 -- 缓存的使用

 -- 避免全表扫描

6、日志、注解

 -- 日志配置、打印规范,用于业务监控、问题跟踪和定位

 -- 注释可读性强
--参考  最佳日志实践http://blog.jobbole.com/56574/

------------------------后续更新中......-----------------------------

猜你喜欢

转载自ghlat520.iteye.com/blog/2319082