zoukankan
html css js c++ java
数据库的伸缩性
我主要来回顾一些一个慢慢变大的互联网应用如何应对数据库这一层的伸缩。
首先刚开始,人不多,压力也不大,搞一台数据库服务器就搞定了,此时所有的东东都塞进一个Server里,包括web server,app server,db server,但是随着人越来越多,系统压力越来越多,这个时候可能你把web server,app server和db server分离了,好歹这样可以应付一阵子,但是随着用户量的不断增加,你会发现,数据库这哥们不行了,速度老慢了,有时候还会宕掉,所以这个时候,你得给数据库这哥们找几个伴,这个时候Master-Salve就出现了,这个时候有一个Master Server专门负责接收写操作,另外的几个Salve Server专门进行读取,这样Master这哥们终于不抱怨了,总算读写分离了,压力总算轻点了,这个时候其实主要是对读取操作进行了水平扩张,通过增加多个Salve来克服查询时CPU瓶颈。一般这样下来,你的系统可以应付一定的压力,但是随着用户数量的增多,压力的不断增加,你会发现Master server这哥们的写压力还是变的太大,没办法,这个时候怎么办呢?你就得切分啊,俗话说“只有切分了,才会有
伸缩性
嘛”,所以啊,这个时候只能分库了,这也是我们常说的数据库“垂直切分”,比如将一些不关联的数据存放到不同的库中,分开部署,这样终于可以带走一部分的读取和写入压力了,Master又可以轻松一点了,但是随着数据的不断增多,你的数据库表中的数据又变的非常的大,这样查询效率非常低,这个时候就需要进行“水平分区”了,比如通过将User表中的数据按照10W来划分,这样每张表不会超过10W了。
综上所述,一般一个流行的web站点都会经历一个从单台DB,到主从复制,到垂直分区再到水平分区的痛苦的过程。其实数据库切分这事儿,看起来原理貌似很简单,如果真正做起来,我想凡是sharding过数据库的哥们儿都深受其苦啊。对于数据库伸缩的文章,哥们儿可以看看后面的参考资料介绍。
查看全文
相关阅读:
进程与线程
silverlight中的几个冷门标记 {x:Null},d:DesignWidth,d:DesignHeight
silverlight数据绑定模式TwoWay,OneWay,OneTime的研究
silverlight 相册雏型
IIS7的应用程序池
silverlight如何在运行时用代码动态控制(或创建)动画
庆祝silverlight 4 beta版发布,上几张养眼MM照片
[转贴]Silverlight Socket 实现收发信息
IIS7.5中神秘的ApplicationPoolIdentity
silverlight中如何将string(字符串)写入Resource(资源)?
原文地址:https://www.cnblogs.com/catkins/p/5270497.html
最新文章
silverlight3中的"伪"3D
最近很热衷于研究相册效果:)
windows 2003 32位系统能支持的最大内存数
silverlight中顺序/倒序异步加载多张图片
silverlight中用代码动态控制Storyboard(动画)属性的三种方法
[转贴]视频聊天网站技术的研究、发展以及趋势
[转贴]IIS5、IIS6、IIS7的ASP.net 请求处理过程比较
64位IIS(IIS6/IIS7)上跑Asp + Jet.Oledb的设置要点
js中数组(Array)的排序(sort)注意事项
Silverlight中多个Xaml("场景"? or "窗口"? )之间的切换/调用/弹出/传参数问题小结
热门文章
windows 7 安装及.net开发环境搭建
linq to xml复习
当wcf遇到JSON ?
[转帖]线程之间的通讯SynchronizationContext
Silverlight项目中"自定义控件开发/Style"学习笔记
scrollTop与offsetTop研究
整理了二个基本的css库(高手请绕道)
如何在Silverlight4中使用摄像头
sliverlight:按点击移动的连续跑马灯
温故而知新:WinForm/Silverlight多线程编程中如何更新UI控件的值
Copyright © 2011-2022 走看看