当web应用中面临大数据量同时并发量比较大的情况下性能是一个尤为重要的问题,面对性能优化我们应从何做起,在哪些方面做优化呢?
2011-05-10 22:15
1046 查看
数据结构设计方面:
针对业务逻辑需求建立合适的数据结构。
中间介的调优以及网络环境部署:
中间介以及网络环境也是以重要因素。
数据库方面:
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
针对业务逻辑需求建立合适的数据结构。
中间介的调优以及网络环境部署:
中间介以及网络环境也是以重要因素。
数据库方面:
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
相关文章推荐
- 如何设计数据仓库?粒度问题是一个最重要方面!
- 一个IIS应用的web服务器负载性能数据
- 在衡量web用程序的性能时,哪些性能指标是比较重要的?
- 多台应用同时操作一张表数据,解决并发问题
- 一个Web报表项目的性能分析和优化实践(二):MySQL数据库连接不够用(TooManyConnections)问题的一次分析和解决案例
- 前端性能优化 Web前端应该从哪些方面来优化网站?
- 引用:在衡量web用程序的性能时,哪些性能指标是比较重要的?
- 一个Web报表项目的性能分析和优化实践(二):MySQL数据库连接不够用(TooManyConnections)问题的一次分析和解决案例
- 一个Web报表项目的性能分析和优化实践(二):MySQL数据库连接不够用(TooManyConnections)问题的一次分析和解决案例
- 一个Web报表项目的性能分析和优化实践(二):MySQL数据库连接不够用(TooManyConnections)问题的一次分析和解决案例
- Android性能优化5 多线程并发的性能问题所幸的是,Android系统为我们提供了Looper、Handler、MessageQueue来帮助实现上面的线程任务模型: Looper: 能够确保线
- oracle11g分页优化,rowid和rownum的性能比较,解决越往后数据查询越慢的问题
- Yahoo Web 应用性能及linux内核优化黄金法则详解
- 分享一个性能优化问题
- 高并发高负载情况下常见的3种性能问题
- Web应用性能优化思路
- Web前端应该从哪些方面来优化网站
- 简述项目中优化sql语句执行效率的方法,从哪些方面,sql语句性能如何分析?
- 利用jsPerf优化Web应用的性能
- 【web开发】spring mvc3中controller从form接受数据时的一个问题