读写分离与公事数据库

上节回首:

 

上节
 
www.27111.com,秋色园QBlog技术原理分析:性能优化篇:用户和小说计数器方案(十七)  

秋色园
[
QBlog](http://www.cyqdata.com/) 对此频仍发生更新操作的拜会计数器(用户表及小说表),举行了另一种优化方案处理,使得原本并发举行的操作,变成了定时的单个队列式顺序更新操作,有效的化解了计数器引发的产出的题目。

 

本节大致:

 

虽说减压方案往往出招,可是如故没能阻挡住access黄金4K的绝杀。

在压力之下,梦幻潜能再一次被激发。

于是,新的绝招再一次出世:一个失传已久的招数:文本数据库

 

本节内容:

 

1:分析寻找优化点:

 

通过 CYQ.Data 的
AppDebug(即将公布的V4.5.5版本包蕴此类),打印出页面的SQL语句:

 

www.27111.com 1

 

PS:至于打印页面SQL语句的优化,可知以前的小说:秋色园QBlog技术原理分析:性能优化篇:全局的SQL语句优化(十三)

 

先是观看页面那几个言辞,大家看来那里涉及到几条语句:

1:第三遍的表架构获取语句,即where 1=2的讲话

2:博客用户的新闻读取语句

3:友情链接的言语

PS:借使没有缓存,当然还有众多和作品列表相关的讲话,小说的下节最主要再讲。

 

然后自己对着这个语句寻思了很久时间,最终得出结论,得把那个语句消灭掉。

 

2:步步分析并对可优化点举办优化:

 

2.1:消灭表架构读取SQL语句

本条实际上关系不大,因为一个表仅读一次,而且事后全局默许缓存30分钟,所以出现反复格外低,然则了为追求首页0语句,我仍旧相比严肃的把它给消灭了,怎么消灭的?

除恶其实依然很好解决的,只要第一次读取时,把表架构外置到文本中即可,于是架构的读取顺序就改成了:缓存->文本->数据库。

 

上边给一张表架构外置文本和架构外置架构示例图:

www.27111.com 2

 

2.2:消灭用户音信的读取SQL语句

实际用户表是个大问题,平常也会冒出的4K,因为有太多的讲话,可提到到用户表的读取。

为此,就算说用户新闻每一遍读取完后也会开展缓存,不过,用户数量相比较多,搜索引擎来来回回,啥用户也会扯到,所以完全来来回回就变的读取相当相当的一再,为此,我想了一想,把它给消灭了,怎么消灭的?

同理,第四回读取时,我把用户新闻外置到文本了,然后用户后台更新数据的时候,也刷新文本。

接下来读取自然的逐一就变成了:缓存->文本->数据库。

于是当然的,秋色园现在4000多的用户,就时有暴发了4000八个文件了,看似规模很巨大!

难免有人要发出感叹,假如你100万用户,不就生出100万个文件了?我想说,求之不得啊!

 

上面给一张用户音信文本及用户新闻以json格式存储的示例图:

www.27111.com 3

 

2.3:消灭友情链接的读取SQL语句

用户的友情链接,比起用户新闻来说,不算第一,然则你会发现,用户的每个页面可都是也有友情链接的。

故而,我打算把它也给灭了,怎么消灭的?

有了地点两步的经验,那步实施起来太easy了,同理,第一次把用户的友情链接转存到文件中,然后读取就是文件读取了,后台修改的时候,也是读的公文的,可是写的时候,先写数据库,再写文本。

于是,4000多用户,也会时有暴发4000多的友情链接的文本。

 

下边给一张友情链接的文本及友情链接列表以json格式存储的示例图:

www.27111.com 4

 

2.4:小说列表的SQL语句呢?

此处不可不庄敬的说一下,大批量的文章列表的SQL语句,并不曾行使文本的不二法门开展消灭。

何以没有呢?

原因也很粗略,因为作品列表涉及到查询及排序还有分组等复杂语句,文本不太好操作那些业务。

那小说列表是哪些开展的优化,那是个大工程,当时自我在外散步延续思考了3天,也是秋色园QBlog 至今截止的终极一次优化,这么大工程,具体下节详细介绍了。

 

总结:

 

秋色园QBlog 通过借助于文本,将大批量的读取数据库转移到文本读取中,有效的回落了数据库的压力,同时网站运行也顺当了众多。

经过一场采用之后,对文件有了第一映像:

亮点:速度快,小数据量(10万或10M左右)简单的积存与读取很是便利。

缺陷:删除,更新,查询,分页,排序及出现控制等操作复杂,而且数据量也不切合太多。

 

除此以外据网上搜寻“文本数据库”的结果看来:

文件数据库在此在此以前在php界很流行,多数论坛都选用文本数据库,而且抗并发能力非常强,当然那背后相信有一定的技术手段在拍卖,然后后来的新兴,php基本都统一mysql了。

至于.net界,文本数据库却从不流行过,那是为啥吧?

 

正史篇章回顾:

1:
秋色园QBlog技术原理分析:开篇:全部认识(一)
–介绍整体文件夹和文件的效劳

2:
秋色园QBlog技术原理分析:认识整站处理流程(二)
–介绍秋色园业务处理流程

3:
秋色园QBlog技术原理分析:UrlRewrite之无后缀URL原理(三)
–介绍如何落成无后缀URL

4:
秋色园QBlog技术原理分析:UrlRewrite之URL重定向连串(四)
–介绍URL如何定位各处理程序

5:
秋色园QBlog技术原理分析:Module之页面基类设计(五)
–介绍创建基类和自定义生命周期

6: 秋色园QBlog技术原理分析:Module之页面基类-生命周期流程(六) –介绍基类生命周期内部事务

7:
秋色园QBlog技术原理分析:Module之基类生命周期-页面加载(七) –介绍界面html加载原理

8:
秋色园QBlog技术原理分析:Web之页面处理-内容填充(八)
–介绍html的情节是怎么填写

9:
秋色园QBlog技术原理分析:独创的多语言翻译机制(九) –介绍html多语言翻译原理

10:秋色园QBlog技术原理分析:页面内容填充及多语言翻译流程演示示例(十) –总括演示示例代码

11:秋色园QBlog技术原理分析:页面Post提交机制(十一) –介绍若是Post提交数据

12:秋色园QBlog技术原理分析:性能优化篇:字节与缓存与出新(十二) –介绍性能优化:字节,并发及缓存

13:秋色园QBlog技术原理分析:性能优化篇:全局的SQL语句优化(十三)–介绍全局了然SQL,举办针对性优化

14
秋色园QBlog技术原理分析:性能优化篇:缓存总有失效时,构造持续的缓存方案(十四) –介绍二次缓存方案

15:秋色园QBlog技术原理分析:性能优化篇:数据库小说表分表及分库减压方案(十五) –介绍内容分库减压

16:秋色园QBlog技术原理分析:性能优化篇:access的面世极限及分库分散并发方案(十六) –介绍access并发上限

17:秋色园QBlog技术原理分析:性能优化篇:用户和小说计数器方案(十七) –介绍用户和小说访问的计数优化方案

附章:

1:秋色园QBlog技术原理分析:博客一键装置工具技术完结[附源码下载] –开源秋色园安装工具原理

2:什么设置配备秋色园CYQBlog站点

3:Windows7下如何设置配备秋色园CYQBlog站点

 

PS:秋色园QBlog下载地址:http://www.cyqdata.com/download/article-detail-427

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注