web站点性能优化

最后编辑时间:2017年2月15日15:40:29

1、前端代码:

  a) 【减少请求】独立出一个静态站专门部署JS、CSS、图片;好处就是页面加载的时候不用从同一个站点请求,因为从同一个站点请求是有数量限制的(最新的各种浏览器一般是6个或者8个)

  b) 【减少请求】文件合并,比如CSS中icon图标合并为一张大图,静态文件合并请求(参考京东的方式,需要nginx配置,据说最初来自于淘宝)

  c) 【减少流量】js、css文件压缩、合并;

    1,不建议使用统一的头模板,公用文件中的代码应尽可能的为公用功能,否则应放到页面单独的js文件中

    2,js应尽量写到文件中,带上版本号,方便更新;静态文件是会缓存到本地的,写到文件中的话就不用反复下载

  d) 【用户体验】使用异步加载图片(页面加载完成后慢慢加载或者滚到的时候加载),增加异步的操作(AJAX)等

2、后端代码:

  a) 使用缓存,缓存的使用就是为了减少数据库的压力,因此不能乱用,也不是越用越好,否则反而可能更慢

  b) 异步任务,比如发短信、邮件等处理时间较长,可能造成用户等待的功能可放到异步任务中处理;原理:先将要处理的数据存起来,放到后台慢慢运算;我们可以使用消息队列、缓存等方式实现

  c) 数据库脚本优化,性能优化的重心,基本就在这上面了;缓存、异步这些弄好之后,我们以后基本不用动,只要用就可以了,脚本每天都在写,说不定哪天上线就造成了整个网站变慢

    1,勤拿少取的原则:即每次取数据的时候尽量少,可以分多次取;可以提升速度,结果就是可能产生大量的连接

    2,减少连接:看似和第一条矛盾,在实际运用中是要分情况的;循环调数据的情况绝对要避免

    3,减少流量:切忌SELECT *这种,要根据情况取需要字段,例如,列表中查询的时候一定要把详情的字段去掉

    4,复杂查询:还是在数据库中优化完之后再放到程序中吧;WITH (NOLOCK)在可以带的时候带上,UPDATE 是会锁表的,这时候查询就需要等待;数据库不应该有太复杂的查询,否则应该把数据分开查出来之后放到程序中处理

    5,不建议使用存储过程:不好维护,比如stackoverflow就不使用存储过程

3、服务器:

  a) 负载服务器;后期的负载均衡肯定是要做的

  b) 数据服务器;读写分离,合适的索引,分库

  c) 主站服务器;

  d) 静态站点独立服务器

  e) 缓存服务器

  f) 异步任务、定时任务服务器

    

原文地址:https://www.cnblogs.com/lilwzca/p/6401967.html