mysql 查询 静态化,特大型网站提速关键技术(页面静态化、memcached、Mysql优化)

大型网站提速关键技术(页面静态化、memcached、Mysql优化)

大型网站关键技术介绍

1. pv值(page views),访问量大

带来问题

a. 流量大 10000000*2m ->解决方案 买带宽 ,优化程序(处理图片)

b. 并发量,同时访问网站的人多.,解决方案

对程序的架构重新设计.->服务器集群  示意图:

114014369.jpg

1. 数据量大->10亿记录

解决方法是

a. 表的设计合理

b. 分表技术(垂直分割,水平分割) c. 建立索引 d. 读写分离 e. mysql配置优化(调整最大并发量,定时对数据库碎片整理,备份 crontab) f.硬件升级)

c. 页面静态化

d. 缓存技术(memcached)

页面静态化

简单解释一下页面静态化:

114014370.jpg

看几个概念,然后写代码:

静态网址:比如 http://localhost/abc.html  即,如果我们访问的页面是静态页面,我们把这个url称为静态网站.

特点: 1.利用seo (search engine optimization)搜索引擎优化2.访问速度快3.防止sql注入

http://localhost/index.php?u=xx&p=/*11288 */

如果我们写程序 loginCheck.php

$id=$_GET[‘id’];

$pwd=$_GET[‘pwd’];

$sql=”select pwd from users where id=$id”;

$res=mysql_query($sql);

if($pwd= = =从数据库中取出的密码){

//说明该用户存在

}else{

//说明用户密码错误!

}

动态网址:比如 http://localhost/news.php?id=112 , 即,访问的是一个PHP页面,可以传入参数.称为动态网之.

特点: 1.不利用SEO 2.访问速度慢3.有被注入sql可能

伪静态网址: 在实际开发中,我们希望达到这样目的,把下面的网址

http://localhost/ news.php?lang=cn&class=sprot&id=2

修改成如下网址

http://localhost/news-cn-sport-id2.html

上面的网址,我们称为伪静态网址 :

特点: 1.利用SEO 2.防止注入3.他任然要访问数据库,速度没有变化

页面静态化技术分类:

从方式看(1.真静态2.伪静态)

从范围看(1.全局静态2.局部静态化[ajax+jquery])

介绍一款测试压力的工具 ab.exe该工具程序是apache自带的,大家在工作中可以使用该工具来测试自己的网站并发量大小,和某个页面的访问时间

基本用法,进入到cmd控制台

ab.exe –n 访问的总次数–c  有多少人访问(并发量)访问的页面url

举例说明:

ab.exe –n 10000 –c 100 http://locahost/test.php

114014371.jpg

当我们把 –c 调整到1000时,发现apache瘫痪.给大家说下如何调整apache的最大并发量.

MPM (多路处理模块,即apache采用怎样的方式来处理并发.),主要有三种方式

1. perfork 预处理进程方式

2. worker 工作模式

3. winnt  这个一般说是windows采用的.

原理示意图:

114014372.jpg

u 如何设置我们的apache的最大并发数,步骤如下:

(1) 在httpd.conf文件中 修改

# Server-pool management (MPM specific)

Include conf/extra/httpd-mpm.conf

(2) 确定当前的apahce是什么MPM模式

进入到 apache/bin

httpd.exe –l

114014373.png

说明: 看 mpm_xxx.c 如果xxx是winnt说明是winnt,另外还可能是perfork或者worker

(1) 修改httpd-mpm.conf文件.

ThreadsPerChild      1000

MaxRequestsPerChild    0

(2) 重启apahce,测试

因为在linux下,一般说采用的MPM是perfork模式,我们看看如何配置.

StartServers          5

MinSpareServers       5

MaxSpareServers      10

MaxClients          150   #并发量

MaxRequestsPerChild   0  #一个进程对应的线程数,对worker更用.

给大家一个合理的建议配置.对大部分网站,中型网站,配置:

StartServers         5#预先启动

MinSpareServers      5

MaxSpareServers      10  #最大空闲进程

ServerLimit          1500#用于修改apache编程参数

MaxClients           1000#最大并发数

MaxRequestsPerChild  0

如果你的网站pv值  百万

ServerLimit2500#用于修改apache编程参数MaxClients           2000#最大并发数

最后有一个关于html和php的访问效率图 :

114014374.jpg

分享一下页面seo技巧:

如果一个图片希望杯百度到

在网站前台,我们建议 不要使用frame框架,不利用seo

如果我们给图片或者视频取名字,尽量简短.

页面静态化的技术实现有两种方式

1. 使用PHP自己的缓存机制

u 先说明一下OB缓存的机制.

ob1.php 代码:说明的ob的各个用法->项目中

114014375.jpg

ob2.php 代码,说明了浏览器缓存存在.

114014376.jpg

说明:在php5.2这个版本 在php.ini有一个配置output_buffering,默认是关闭,如果是关闭,这刚才的代码就会警告.

☞ 如何打开ob缓存

① 配置php.ini 文件 output_buffering = 4096

② 直接在程序中  ob_start();

1. 使用模板替换技术实现(正则表达式)

使用ob缓存机制,完成一个简单的新闻管理系统-页面静态化(目标是实现全站静态化)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值