page views页面浏览量,一个网站的所有页面,在24小时内被浏览的总次数,一般说到千万,其实达到百万级已经很少,所以百万浏览量的网站也可以说是大型网站
unique visitor独立访客,一个网站在24小时内,有多少个用户来访问该网站,一般来说每天达到10W的已经可以算作是大型网站
ip值,在24小时之内达到10W,就可以称得上是大型网站
现在很多人上网其实是使用的nat端口转换技术,也就是说,一个小区可能拥有一个外网ip,此时大家访问网站时,对外显示的ip是一样的。在不考虑内网的情况下ip值=uv值,如果考虑,uv值略大于ip值
在同一个时间点,有大量的客户访问网站,如果访问量过大,就可能造成网站瘫痪
当网站大了以后,多媒体资源(图片、音频、视频、flash)对流量要求很高,需要更多更大带宽(带宽是非常昂贵的)
网站大了,数据也变得海量,如果将数据放入一个数据表,是无法应对的,可能在数据的保存和查询时都会出现问题,比如查询速度慢,服务宕机,数据丢失等等
比如网站各种logo和标识,放在一个文件中,然后使用背景图的方式展示出来,节省tcp连接创建和释放所产生的开销
Apache自带压缩机制:gzip deflate等,可以大量节省数据尺寸
CDN原理
1)、用户向浏览器提供要访问的域名;
2)、浏览器调用域名解析库对域名进行解析,由于CDN对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的CNAME记录,为了得到实际IP地址,浏览器需要再次对获得的CNAME域名进行解析以得到实际的IP地址;在此过程中,使用的全局负载均衡DNS解析,如根据地理位置信息解析对应的IP地址,使得用户能就近访问。
3)、此次解析得到CDN缓存服务器的IP地址,浏览器在得到实际的IP地址以后,向缓存服务器发出访问请求;
4)、缓存服务器根据浏览器提供的要访问的域名,通过Cache内部专用DNS解析得到此域名的实际IP地址,再由缓存服务器向此实际IP地址提交访问请求;
5)、缓存服务器从实际IP地址得得到内容以后,一方面在本地进行保存,以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程;
6)、客户端得到由缓存服务器返回的数据以后显示出来并完成整个浏览的数据请求过程。
在满足需要的情况下,使用jpeg格式图片比png图片更节省资源,所以尽量使用jpeg图片
实在没法了,买带宽吧
3.2 内存缓存
一般不访问数据库,速度快
不接收参数,因此没有没sql注入可能
利于seo(search engine optimization)搜索引擎优化
比如 http://www.xxx.com/searchNews.php?type=sport&id=100
对应一个动态页面,因此访问速度没有提升
seo效果好
因为很多页面的数据不是频繁变化,没有必要每次查询都走库,可以把这样页面,转换成对应的静态页面,当用户访问时,直接将该静态页面返回即可,这样就大大减少了对数据库的压力,从而提速
从url上可以分
:不查询数据库
表面上是一个静态地址,其实还是动态的
从范围上可以分为
全部页面或者页面全部都不使用数据库
ajax
使用开发语言自带的缓存技术实现 output buffer
使用模板替换技术实现
1.网页实时性要求高,不要使用真静态化
2.如果网站访问量较小,没有必要使用静态化技术
3.如果某个网页的数据不是经常变化,而且访问频率极大,建议使用真静态,比如新浪新闻频道,公司营销网站
4.如果某网站数据海量( 100 亿),使用真静态会生成海量的 html 静态页面,建议使用伪静态或者分目录来创建静态页面
5.网站安全性要求高,不愿意被seo,或者不希望数据暴露给 spider ,不要使用静态化(网站后台)
6.在一个大型网站中,静态化技术是综合使用的,这个需要大家经验的积累,多做项目
3.4.1 表的设计要合理(满足3NF)
3.4.2 添加索引(主键索引|全文索引|唯一索引|普通索引|空间索引)
3.4.3 优化sql语句
3.4.4 分表( 水平分表,垂直分表),分区
3.4.5 读写分离
3.4.6 优化my.ini配置
3.4.7 软件硬件应当升级