Web应用系统性能优化

数据库优化:

1、建立正确的主键、外键以及索引。

2、分离原则:读写分离,业务数据分离。

      a)分库  b)分表  c)分区  d)分列(将大的列,不常用的隔离到他表,按需查询)

3、选择隔离级别:一些数据对一致性要求不高的,可以适当牺牲一致性,降低加锁阻塞。

4、保证事务简短以及去除不必要的锁机制。

5、查询优化:

      a) 避免表内的相关子查询

      b) 避免排序或者尽可能少的排序

      c) 做大量数据排序时,数据尽量放在临时表中

      d) 尽量在where后多加查询条件,以减少不必要的返回行。

      e) 只select需要到的字段,减少不必要的返回列。

6、分页存储过程:大列表的数据查询也可以用分页存储达到优化效果。

7、利用数据库缓存、视图、临时表等最大程度优化系统,并对函数和存储过程做必要的优化。

8、如有必要刻意冗余表中字段,避免联合查询。

9、如有必要,可以将表中的大字段抽离到单独表中,供用户进行单独查询。

10、必须做多表关联查询时,尽可能过滤不符合条件的表中数据,以减少笛卡尔值的计算量。

应用层优化:

应用层优化侧重于应用层本身的逻辑优化,算法优化、代码优化等、优化的角色可以是熟悉应用本身的开发者。

1、优化算法,选择合适高效的算法,降到不必要的递归,循环、多层嵌套等计算。

2、避免申请过多的不必要的内存开销。

3、降低内存泄露。

4、使用频率降低的大文件、大对象、大数组,在使用完毕之后,及时释放。

5、考虑多线程技术。

6、选择适当的通讯方式:长连接、短连接、有以下方式(Socket、Remoting、WebService、WCF)

7、降低应用之间的通信次数,如用户认证服务、工作流服务、数据库服务。

8、降低应用之间的数据传输量,不必要的不传、少传。

9、缓存机制:缓存常用的,不经常变化的,偶有变化,可以考虑缓存依赖机制。

10、支持异步计算,降低等待时间。

11、考虑延迟加载,或者提前加载两种方式。

12、分离原则:分离业务模块、分离大I/0模块、分离高耗内存模块、分离高耗带宽模块。

13、考虑分布式应用、分布式存储。

Web优化:

1、减少http请求。

2、减少404错误。

3、在html页面header加入缓存标签。

4、Gzip压缩网页。

5、减少cookie体积、

6、使用外部的js和css。

7、消减js和css

8、压缩js

9、可以考虑静态页面,避免使用动态页面。

总结:

1、硬件方面使用高性能的小型机、存储设备。使用极好的网络带宽。

2、物理分离Web Server 和 DB Server 或其它服务如:用户认证服务。

3、缓存。数据缓存和页面缓存。

4、物理分离业务模块,单独重要频繁业务单独部署一台服务器。

5、部署Web Server集群。

6、Web负载均衡。

7、数据读写分离。

8、使用消息队列。进行各种应用间的同步/异步计算。

9、应用间选择合适的通讯方式、通信协议。

10、Web分布式、应用分布式、数据分布式。

猜你喜欢

转载自jayke516.iteye.com/blog/2126753