一、流量大:
1、服务器集群
2、mysql优化(设计合理的数据表、3nf、分表(垂直、水平分割)、
读写分离、mysql配置优化)
3、apache理想并发量
nginx 理想并发量
4、mysql 理想并发量
4.1 数据库负载均衡(读写分离)(amoeba新浪研发)
(主数据库master,从数据库slave)
(数据库之间的同步,利用复制技术,配置就可以)
4.2 select (不同的语句 访问不同的slave数据库、只需要配置一个日志文件来实现)
dml-数据操作 (update/delete/insert)
ddl(create drop)
dcl(数据控制语句grant授权 revoke)
dtl(数据事物语句savepoint rollback commit)
5、集群实现理论
5.1硬件配置:F5 BIG-IP NetScalar 优点是效果好,缺点是贵
5.2软件实现:LVS(linux virtual server),nginx(反向代理),是轮询技术
6、缓存技术(memcached/redis)
二、数据量大
1、表的设计要合理
2、分表技术(垂直、水平分割)
3、读写分离
4、mysql配置优化(调整最大并发量,定时对数据库碎片整理crontab -e)
三、页面静态化
1、原理:就是第一个人访问,然后生成静态html,然后后面的就访问这个html
1.1尽量少的访问数据库
2、静态网址:http://www.1366768.com/site/index.html静态页面
2.1静态静态页面的网站
特点: 1. 利用seo(search engine optimization)搜索引擎优化
2. 返回速度快
3. 防止sql注入
eg:
//登录不好的代码方式
$sql = "select id, pwd from users where id=$id and passwd=$passwd";
$res = mysql_query($sql);
//根据$res 来判断是否存在该用户,然后是否登录成功。
//因为这样,就让用户输入了两个变量,变量愈多,就俞可能被攻击
//应该改成
$sql = "select id from users where id=$id";
$res = mysql_query($sql);
然后把得到的数据与用户输入的密码进行对比
if(md5($pwd) === 数据库得到的密码){
}
3、动态网址:比如http://www.1366768.com/index.php?id=112
3.1 不利于seo
3.2 每次都访问数据库,导致速度慢
3.3 被sql注入,嵌入javascript夸域攻击
4、伪静态网址
实际开发中,我们希望达到这样的目的:把下面的网址
http://www.1366768.com/index.php?lang=cn&class=sport&tid=2
修改成:
http://www.1366768.com/index-cn-sport-id2.html
这样网址就是伪静态网址:
4.1 有利于seo
4.2 防止注入
4.3 任然要访问数据库,速度并没有变快
5、页面静态化技术分类:
5.1. 方式看(真静态,伪静态)
5.2. 从范围(全局静态,局部静态化[ajax+jquery])
四、SEO
1. apache里面有个工具ab.exe来测试网站速度
2. seo 技巧
2.1 url不要超过255byte
2.2 http://www.1366768.com/site/showBlog.html?id=462
容易让spider多次重复抓取,这样不好,还是应该写成伪静态
2.3 图片alt信息,如果希望被百度搜索到,就好好写这个alt信息
2.4 里面的keyword/descripte写3到4个关键字就可以了,
多了百度也不看,和别人以为自己作弊。
2.5 网站前台不要写frame/frameset/iframe标签,后台是可以使用的
2.6 flash缺少文字描述,标题简短介绍就可以了,不要写得太多,太细
如我我们给的图片或者视频取名字,尽量简短,说清楚就可以了