博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转载] 数据库的垂直切分和水平切分
阅读量:4606 次
发布时间:2019-06-09

本文共 702 字,大约阅读时间需要 2 分钟。

转载自http://blog.csdn.net/kobejayandy/article/details/8775138

数据切分可以是物理上的,对数据通过一系列的切分规则将数据分布到不同的DB服务器上,通过路由规则路由访问特定的数据库,这样一来每次访问面对的就不是单台服务器了,而是N台服务器,这样就可以降低单台机器的负载压力。

据切分也可以是数据库内的,对数据通过一系列的切分规则,将数据分布到一个数据库的不同表中,比如将article分为article_001,article_002等子表,若干个子表水平拼合有组成了逻辑上一个完整的article表,这样做的目的其实也是很简单的。 举个例子说明,比如article表中现在有5000w条数据,此时我们需要在这个表中增加(insert)一条新的数据,insert完毕后,数据库会针对这张表重新建立索引,5000w行数据建立索引的系统开销还是不容忽视的。但是反过来,假如我们将这个表分成100 个table呢,从article_001一直到article_100,5000w行数据平均下来,每个子表里边就只有50万行数据,这时候我们向一张只有50w行数据的table中insert数据后建立索引的时间就会呈数量级的下降,极大了提高了DB的运行时效率,提高了DB的并发量。当然分表的好处还不知这些,还有诸如写操作的锁操作等,都会带来很多显然的好处。

综上,分库降低了单点机器的负载;分表,提高了数据操作的效率,尤其是Write操作的效率。

转载于:https://www.cnblogs.com/scott19820130/p/4617502.html

你可能感兴趣的文章
ssm项目中 数据库和资源的备份
查看>>
hdoj5671 BestCoder Round #81 (div.2)
查看>>
HDU5950【矩阵快速幂】
查看>>
在线C++编译器
查看>>
C#中各种serialization的比较
查看>>
P2617 Dynamic Rankings
查看>>
工作学习常识1
查看>>
Linux小知识点
查看>>
VisualVM监控远程主机
查看>>
C#中检查网络是否连通的二种方法
查看>>
节假日设置
查看>>
<五>初探opengl,编写我们的镜头
查看>>
大数据操作:删除和去重
查看>>
2、JDBC-CURD
查看>>
【C语言零碎知识点】变量的存储类型
查看>>
编程时 对 用途这个字段定义时 不要用using 这个英文
查看>>
JQ实现accordion(可折叠)效果
查看>>
servlet的编码原理
查看>>
ARM4412的MMU内存管理单元
查看>>
HTML5可以存的东西有哪些:
查看>>