数据库数据切分

垂直切分

将数据库想象成由很多个一大块一大块的“数据块”(表)组成,垂直地将这些“数据块”切开,然后把它们分散到多台数据库主机上面

优点

(1)数据库的拆分简单明了,拆分规则明确

(2)应用程序模块清晰明确,整合容易

(3)数据维护方便易行,容易定位

缺点

(1)部分表关联无法在数据库级别完成,要在程序中完成

(2)对于访问极其频繁且数据量超大的表仍然存在性能瓶颈,不一定能满足要求

(3)事务处理复杂

(4)切分达到一定程度之后,扩展性会受到限制

(5)过度切分可能会带来系统过于复杂而难以维护

水平切分

将某个访问极其频繁的表再按照某个字段的某种规则分散到多个表中,每个表包含一部分数据

优点

(1)表关联基本能够在数据库端全部完成

(2)不会存在某些超大型数据量和高负载的表遇到瓶颈的问题

(3)应用程序端整体架构改动相对较少

(4)事务处理相对简单

(5)只要切分规则能够定义好,基本上较难遇到扩展性限制

缺点

(1)切分规则相对复杂,很难抽象出一个能够满足整个数据库的切分规则

(2)后期数据的维护难度有所增加,人为手工定位数据更困难

(3)应用系统各模块耦合度较高,可能会对后面数据的迁移拆分造成一定的困难

原文发布于微信公众号 - 性能与架构(yogoup)

原文发表时间:2015-08-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏做全栈攻城狮

程序员带你学习安卓开发-安卓基础之网络编程 大汇总

本系列教程致力于可以快速的进行学习安卓开发,按照项目式的方法,通常一篇文章会做一个小程序。提高学习的兴趣。

974
来自专栏BeJavaGod

使用ztree.js,受益一生,十分钟学会使用tree树形结构插件

看到ztree.js,这几个字眼,毋庸置疑,那肯定就是tree树形结构了,曾经的swing年代有jtree,后来jquery年代有jstree和treeview...

4394
来自专栏13blog.site

Spring+SpringMVC+MyBatis+easyUI整合优化篇(一)Java语言中System.out.print与Log的比较

作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载。 前言 距离上一次更新博...

3158
来自专栏更流畅、简洁的软件开发方式

论程序的成长—— 你写的代码有生命力吗?

做了五年多的程序员了,回过头来看了看以前发的一些帖子,颇有一番感想。 我最得意的就是对数据访问的处理方法(我的数据访问层),倒不是说他有多么的强大、多么的完善,...

2116
来自专栏全华班

微信、支付宝、银联支付sdk组件

该组件为封装了 微信,支付宝,银联支付, 一键快速集成,几行代码即可集成 微信,支付宝,银联支付。

2942
来自专栏小狼的世界

基于Mapabc API的周边查询应用

现在,越来越多的 Location Based 应用,或者Geolocation的应用出现在网络、手机等各种各样的终端上,为人们的日常生活、出行和工作都提供了不...

1032
来自专栏大愚Talk

为什么要用Redis

最近阅读了《Redis开发与运维》,非常不错。这里对书中的知识整理一下,方便自己回顾一下Redis的整个体系,来对相关知识点查漏补缺。

2962
来自专栏樊华恒的专栏

海量之道系列文章之弱联网优化 (五)

在客户端接入服务器调度策略的演化过程中,我们最早采用了“就近接入”的策略,在距离客户端更近的地方部署服务器或使用CDN,期望通过减少RTT来提高网络交互响应性能...

7160
来自专栏张伟博客

WordPress新建页面没有评论框

1585
来自专栏全华班

基于PHP爬虫的博客小程序

小程序后端是基于 Wext-server-thinkphp3.2 实现的数据爬虫,使用 ThinkPHP3.2 框架开发。Wext-server-thinkph...

3451

扫码关注云+社区

领取腾讯云代金券