数据库网站加速思路

一、前端加速
1、 squid
Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。
Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器(比如:http://squid.nlanr.net/)并向这个页面发出请求。然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理HTTP,FTP,GOPHER,SSL和WAIS等协议。但它不能处理如POP,NNTP,RealAudio以及其它类型的东西。
例如:买火车票,只需要去代理窗口买票,而没有必要再去火车站买火车票,我们不需要知道代理和火车站之间是怎么联系,我们是客户,代理售票点就是代理服务器,火车站就是后台服务器,Squid是实现代理服务器的一个软件。
1.1 Squid反向缓存-动静分离
1.1.1静态数据
静态页面、图片/FLASH、CSS文件、JS文件
静态页面是网页的代码都在页面中,不需要执行asp,php,jsp,.net等程序生成客户端网页代码的网页,静态页面网址中一般不含“?”、“=”、“&”等特殊符号。静态页面不能自主管理发布更新的页面,如果想更新网页内容,要通过FTP软件把文件DOWN下来用网页制作软件修改(通过fso等技术例外) 常见的静态页面举例:.html扩展名的、.htm扩展名的。 注意:静态页面并非网站上没有动画的就是静态页面。
1.1.2动态数据
根据用户的请求从服务器的数据库中或文件获取的记录
动态页面:动态页面是通过执行asp,php,jsp,.net等程序生成客户端网页代码的网页。 动态页面通常可以通过网站后台管理系统对网站的内容进行更新管理。发布新闻,发布公司产品,交流互动,博客,网上调查等,这都是动态网站的一些功能。也是我们常见的。 动态页面常见的扩展名有:.asp .php .jsp .cgi.aspx 等。 注意:动态页面的“动态”是网站与客户端用户互动的意思,而非网页上有动画的就是动态页面。
2 动态页面静态化
方法一:使用现成的插件,比如:ISAPI_Rewrite、IIS Rewrite、Apache HTTP服务器的mod_rewrite等,它们都是基于正则表达式解析器开发的重写引擎。它们的使用方法查看它们自带的帮助即可。
方法二:自己写的代码实现动态网页静态化,方法也有好几种:
1、创建FSO对象,利用此对象将所需的内容动态创建到文件中生成HTML页面;
2、利用模板技术,将模板中特殊代码的值替换为从表单或是数据库字段中接受过来的值 生成HTML文件;
3、使用Server.Transfer转换技术,
方法三:使用HttpWebRequest请求客户端的方式,获取返回资源,生成静态页面。一般这样只需要获取网页内容即可,其它资源可放置在服务器上,自动加载。(注:此方法缺点明显,需要大量更改匹配URL,建议慎用)
方法四:在asp中有IhttpModule接口。Ihttpmodule可以简单理解为一个可以在执行像.aspx,或者mvc中control/action前,添加我们自定义的操作的东西。
2、 模板技术-页面静态化
1) Smarty模板-百科
Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。
2) ThinkPHP框架- 百科
一个开源轻量级PHP框架 。
3) ZendFrameWork框架- 百科
Zend类是整个Zend Framework的基类,之所以有这个类是为了使Zend Framework遵循DRY原则(Don't Repeat Yourself)。这个类只包含静态方法,这些类方法具有Zend Framework中的很多组件都需要的功能。 (Zend类是个功能性的类,它只包含静态方法,也就是说,不需要实例化就可以直接调用Zend的各种功能方法/函数。通俗地说,Zend类相当于我们熟悉的functions.inc.php,而且是corefunctions.inc.php,提供了最核心最常用的函数。 --Haohappy注)
4) BroPHP框架
BroPHP(1.0)是一个免费开源的轻量级PHP框架,完全采用面向对象的设计思想,并且是基于MVC的三层设计模式。具有部署和应用及为简单、效率高、速度快,扩展性和可维护性都很好等特点,可以稳定的用于商业及门户的开发。(单服务器的PHP项目大约当前所有网站数量的80%,都可以使用BroPHP框架开发)BroPHP框架包括单入口文件、MVC模式、目录组织结构、类自动加载、强大基础类、URL处理、输入处理、错误处理、缓存机制、扩展类等功能。任何PHP应用开发爱好者都可以从BroPHP框架的简单和快速的特性中受益。
二、 后端加速
1、Memcache-百科
memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著[1] 。这是一套开放源代码软件,以BSD license授权发布。
Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。
内存中的数据极容易丢失,重要的数据的查询,直接走MySql。
2、sphinx全文索引-学习网站
Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。
高速索引 (在新款CPU上,近10 MB/秒); 高速搜索 (2-4G的文本量中平均查询速度不到0.1秒); 高可用性 (单CPU上最大可支持100 GB的文本,100M文档); 提供良好的相关性排名 支持分布式搜索; 提供文档摘要生成; 提供从MySQL内部的插件式存储引擎上搜索 支持布尔,短语, 和近义词查询; 支持每个文档多个全文检索域(默认最大32个); 支持每个文档多属性; 支持断词; 支持单字节编码与UTF-8编码;

你可能感兴趣的:(数据库网站加速思路)