网站运营
位置:首页>> 网站运营>> 网站、数据库的衍变之路(3)

网站、数据库的衍变之路(3)

 来源:cnblogs 发布时间:2009-09-26 20:03:00 

标签:网站,数据库

(三)

(二)讲了几种静态化方案的利弊,有朋友要讲详细一点,呵呵,这不属于本节的范畴。也有朋友说有些网站不适合搞静态化,是有这种情况。但是在这个时期,网站还处于刚发展的起始阶段。初期的网站用户量往往很小,都是以提供咨询为主,典型的web1.0系统,静态化方案是和这个背景紧密相关的。而随着网站的逐步发展又会遇到些什么样的问题呢?这个要看网站发展的实际情况。大体上分为两类:一、就是做资讯的,用户一般是从搜索引擎过来的,没有多少的交互任务;二、以做SNS或者论坛这类互动性高的产品的(用论坛提供下载或者文字阅读的不在此例)。

一、提供内容为主的系统

对于第一种提供内容的网站而言,会出现两种情况。一种是数据容量过大,由于早期设计失误,造成数据库访问速度很慢;第二种是访问人数过多,造成IIS响应不过来,反映在访问速度慢或者干脆报Service Unavailable错误。或者两种情况都发生了。

对于数据访问慢的情况,需要对数据库进行优化。包括优化查询语句,优化数据库结构,索引优化。而对于单表数据好几千万条的优化则需要进行分表。在SQL2005以前版本中并没有,没有使用内置的表分区功能,需要自己实现。策略一般是按照时间,把数据放到不同的表中。然后再使用视图功能把表查询聚合到一起。这种方式和SQL2005带的表分区相比有很大不同,效率远比SQL2005带的要低。为什么呢?比如SQL2000,建立两张相同结构的表,储存数据。表一和表二都是500万数据。查询时,先从表1筛选到数据,再从表二筛选到数据,然后合并,再按条件排序,还是单线程的,这能不慢吗?而SQL2005是可以把索引放到不同的分区,多线程地去操作,由于是在进程内完成数据的筛选排序,速度还是很快。当然,前提是服务器有很多个核。(SQL2005表分区只在服务器版中可以使用。)

对于IIS响应慢或者Service Unavailable的情况,有可能是带宽太小,也可能是连接数太多了。我记得有人做过测试,IIS的TCP连接数最大大概是8000的样子,Unix下的Apache(还是httpd忘记了。)最大连接数一万多。好像说是操作系统TCP/IP堆栈的限制,我对这方面不太懂。如果超过这个量或者是其它类似的原因造成了web服务不稳定,那么就该加服务器了。

二、互动性高的系统

互动性高的系统容易遇到的问题是数据库高并发。数据库的很多操作是有锁的,锁保存在系统表里,如果系统的吞吐量也满足不了需要,那么锁就会出现问题了。你可以认为,数据库一次至多只能有100个连接(在SQL2005服务器版本上测试)。如果超出了,那么,第101个就会超时。假如有一条语句操作时间很长,也操作频繁,那么应该很容易就引起数据库超时的错误。

这种系统,如果数据库本身已经满足不了了,可以用 * 来解决。用 * 也需要考虑怎么设计方案。假设现在每秒钟有100条数据库操作命令,而这100条命令各不相同,并且数据库1秒钟刚好能处理这100条命令。那现在每秒钟有101条命令,并且命令还是各不相同,每秒中与每秒钟产生的命令也是不相同的,那么做 * 也是毫无用处的。最多只能有一个缓解作用。因为每秒钟都会增加一条无法处理的命令。

图2.1

幸运的是,在处理的语句中有很多是重复的。比如,现在 * 如图2.1一样工作,在1秒钟内,拦截了101条命令,归并出有20条语句都是查询的同样的内容(一般是列表页),最后整理出实际需要操作40条命令,然后执行命令,拿到数据库后分发给这101个请求。也就是说101个工作被压缩成了40个工作。

还可以对某些不常变动的数据进行缓存。比如文章的分类,用户的名字(这个要看注册用户增长的情况)。图2.1的模型改成图2.2的情况。

图2.2

当然缓存块也可以加在Web应用的部分。主要用来保存一段时间内不更新的数据,当然,这个缓存是有过期策略的。

对于SQL查询的优化,缓存也能帮到一定的忙。比如,有个联合查询,查询的是文章分类表和文章表。完全可以只查文章表,而文章表中只有分类ID,显示的时候怎么办?在内存中,缓存了一个分类字典,键就是分类ID,值就是分类名称。显示的时候,直接用文章内分类ID在字典中找。这样就提高了SQL语句的效率。

而出现大表的情况,还是参考本文的第一部分解决。

现在,本文还有一个问题没解决呢,那是第一部分遗留的。要增加服务器,那怎么部署呢?

0
投稿

猜你喜欢

  • 网站的定位往往就是一句话的事情,但就是简单的一句话却来之不易。为了这简单的一句话,很多网站花了很长的时间,走了不少的曲折之路。网站的定位跟网
  • 网易科技讯 5月13日凌晨消息,微软今天正式在全球发布了包括MS Office 2010在内的商用平台软件。和以往相比,新商用软件平台最大的
  • 天下熙熙皆为利来,天下攘攘皆为利网(往)!当新一代中国商人爱上网络,当商人爱上商业搜索,世界将“利来利网”!网络经济,挟全球经济一体化的大潮
  • 问题描述在VMware Workstation中新建了一个虚拟机CentOS7,网络适配器选择的是“仅主机模式”,结果,物理机ping不通虚
  • 近日研究Google Adsense,终于知道了一条赚钱规则,按这个规则,应该可以优化Adsense提高收入了吧。这条规则其实非常的简单就是
  • SEO标题的最佳下标法:质量保证,由于网页的标题都会出现在搜寻引擎的结果显示页面,所以在每个网页的标题都请用心下!最好使用您网站的标题,或者
  • Google AdSense开始通过本地的公司与发布者联系和合作,实际上仅仅是法律意义上的Google AdSense代表变更,并不影响其他
  • 对于经常使用Linux系统的人员来说,少不了将本地的文件上传到服务器或者从服务器上下载文件到本地,rz / sz命令很方便的帮我们实现了这个
  • 当前,国内社交网站(SNS)的发展呈现多元化趋势,搜狐、新浪、盛大、腾讯等都在进入社交领域。现对大部分用户来说,到各种网站上建立自己的好友关
  • SEO博客建了也有半年了,也了解了一些SEO的手段和方法,但本人认为SEO最基本还是以下六点暂时就叫SEO的六大重点和难点吧(仅代表本人的S
  • (1)http为默认的服务,不用设置 (2)ftp----/usr/lib/ftpAgentClusterServer Configurat
  • 23日从工业和信息化部了解到,截至2月份,我国网民数达2.21亿人,超过美国居全球首位。在2007年底,这一数字为2.1亿人。据了解,今年在
  • 整合搜索,或者叫通用搜索,universal search,是这几个月对SEO行业有重要影响的另一个搜索引擎发展趋势。我个人感觉整合搜索比个
  • Linux中系统服务却越来越多,而且似乎也没有哪里专门介绍了每个服务的功能,搞得我们不知道机器启动了什么服务,是否达到了最优化的启动模式。所
  • 近年来SNS的盛行,也引发了好多人对于SNS与招聘结合的探讨。随着若邻网全新模式的猎聘平台的上线,我也谈一下对于SNS与招聘的结合问题。当前
  • 如果要问做什么事是最有吸引力,那就是创建Web应用。毕竟,上次你听到有人称赞某产品的交互设计是什么时候的事了?(除了iPod之外) 它们都很
  • 本次教程的前提条件是您得安装好VM软件和Xshell。对应软件的下载请自行百度!如果exe都不会安装,请关闭本页面!第一步、下载镜像阿里云开
  • 很多用户不知道Godaddy域名应该怎么指定目录? 今天我们就来探讨一下这个问题。用户有两个域名aaa.com和bbb.net,由于主域名不
  • 看到这个标题,想必大家会不屑一顾,“需要分析IIS日志吗?我有流量统计、51yes、cnzz、51la等等一大堆,功能全面,用起来也方便”,
  • 个人网站,通常意义上说是以个人的名义,单个人或几个人小作坊做的网站,也从另外的诠释上泛指草根网站。个人网站不缺创意,不缺流量,不缺技术,不缺
手机版 网站运营 asp之家 www.aspxhome.com