数据结构设计方面:
针对业务逻辑需求建立合适的数据结构。
中间介的调优以及网络环境部署:
中间介以及网络环境也是以重要因素。
数据库方面:
1.使用索引或者联合索引,但是索引并不是越多越好,过多的索引导致CUD的性能降低,并且占用大量的空间。
2.消除大数据表的链接查询,对于大数据量表的处理:
(1)可以对某些表增加冗余字段,这些冗余字段会高频率的从另外表中获取。
(2)Cache缓存,变动量不高,数据一致性要求高
(3)直接删除关联字段
(4)拆分成多次查询
3.sql语句的优化
应用层方面:
1.Cash的运用:对于高频率使用且不常变更的操作可以用缓存来处理(即读多写少),如检测用户的权限操作,每做一次操作都要检测该用户 是否具有该操作的权限,可以将用户的权限存于缓存中避免频繁操作数据库。
Cache技术:MemCached、 JBoss Cashe、 OSCashe、EHCache.......
2.数据的统计查询:针对大数据量的数据查询,常用的是模糊查询,在可以的情况下尽量不用模糊查询,同时可以用数据库自带的全文检索功能,但是在数据准确性方面有一定的局限性,还可以采用开源的搜索引擎,如apache下的lucene。
3.异步操作:
(1)表现层的异步:Ajax技术,常用框架DWR,DOJO
(2)后台业务逻辑层异步:JMS、MQ技术
Web层性能优化:
1.减少http请求
2.缓存ajax
3.延迟加载
4.提前加载
5.减少iframe
6.避免404错误
7.文件头制定Expires或Cache-Control
8.GZip压缩网页
9.使用Get完成ajax请求
10.减少cookie体积
11.js脚本置于页面底部
12.使用外部js、css
13.提出重复脚步
14.用<link>代替@import
15.避免使用滤镜
16.优化图像
17.不缩放图像
http服务器的性能优化策略:
Apache三种工作模式:
1.prefork
2.worker
3.event