大型网站的并发处理 |
您所在的位置:网站首页 › httpclient高并发处理 › 大型网站的并发处理 |
大型网站的并发处理--孙大峰.doc
下载文档
文档格式: doc
文档大小: 18.5K
文档页数: 3
大型网站的并发处理 --孙大峰
大型网站中,大量用到了多对多关系,传统的处理方式
无法满足高并发的性能要求;通过冗余和缓存等方式,可以
有效解决这方面的问题。
传统多对多的处理方式
就拿文章标签来说吧,一个文章可以有多个标签,而每个标签又可以对应多篇文章,这又是一个几何乘积,数据量也会是天文数字。传统的处理方式有三种:第一种是通过 SEARCH 的方法来实现;第二种是通过另建一个索引表,放置对应的 ID 以进行存贮;第三种是通过二次归档缓冲来实现。
对于第一种方案,因为要涉及大量的 LIKE 查询,性能不够理想。第二种情况下, 数据库表中的惊人行数也是量级别的。要维护索引表的散列处理,并且要跨表跨区查询,还维护数据的唯一性。数据处理过程相当复杂,性能表现低下。
以标签和文章之间的多对多关系为例来讲解第三种方案:当一篇博文发布并插入标签时,一般是三步走:第一步插入文章数据库并获取文章的 ID ;第二步插入标签数据库同时查询标签是否存在, 如果存在就取出标签的 ID ,否则的话插入新标签并取出 ID ;第三步,将文章 ID 和标签 ID 插入索引表来建立关联,那就是灾难性的,特别是在数据量大的情况下,
尽管它可以有效提高查询速度,但是发布的速度可能就会让
人无法忍受了。
多对多优化处理的四部曲
第一步:数据冗余
可以对文章做冗余, 加一个 TAG 列,将标签这样写: [TAGID ,
TAGNAME]|[TAGID ,TAGNAME]|[TAGID , TAGNAME] 。
同样,对于 TAG 表,作如下冗余:加个 ARTICLE 字段,比
如[ARTICLEID ,TITLE]|[ARTICLEID ,TITLE]|[ARTICLEID ,
TITLE]
。增加
TAGNAME
和
ARTICLETITLE
,是为了避免
跨表查询和 INNER JOIN 查询。 IN 查询和跨表查询会造成
全表遍历,所以必须要为 IN 查询找到一个有效的替代方法。
第二步:异步存贮
是一种另类的单件模式处 本文档共3页,可免费阅读3页,剩余0页请下载后阅读。继续阅读 下载文档![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 1、本文档共:3页,可阅读全部内容。 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。 3、本文档由内容提供方上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重标题与内容不符之情形,可联系本站下载客服投诉处理。 文档被侵权? 请点击这里,立即处理![]() |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |