浅谈高性能数据库集群 —— 分库分表

最近学习了阿里资深技术专家李运华的架构设计关于分库分表的教程,颇有收获,总结一下。

本文主要介绍高性能数据库集群分库分表相关理论,基本架构,涉及的复杂度问题以及常见解决方案。

分库分表概述

读写分离分散数据库读写操作压力,分库分表分散存储压力

适用场景

类似读写分离,分库分表也是确定没有其他优化空间之后才采取的优化方案。那如果业务真的发展很快岂不是很快要进行分库分表了?那为何不一开始就设计好呢?

按照架构设计的“三原则”(简单原则,合适原则,演化原则),简单分析一下:

首先,这里的“如果”事实上发生的概率比较低,做10个业务有一个业务能活下去就很不错了,更何况快速发展,和中彩票的概率差不多。如果我们每个业务上来就按照淘宝、微信的规模去做架构设计,不但会累死自己,还会害死业务

其次,如果业务真的发展很快,后面进行分库分表也不迟。因为业务发展好,相应的资源投入就会加大,可以投入更多的人和更多的钱,那业务分库带来的代码和业务复杂问题就可以通过加人来解决,成本问题也可以通过增加资金来解决。

业务分库

业务分表

业务分表概述

带来的问题

垂直分表

增加表操作的次数

水平分表

  • 路由问题
  • 数据库操作问题

实现方法

类似读写分离,具体实现也是“程序代码封装”和“中间件封装”,但具体实现复杂一些,因为还有要判断SQL中具体操作的表,具体操作(例如count、order by、group by等),根据具体操作做不同的处理。

参考

从0开始学架构 —— 李运华

《浅谈高性能数据库集群——读写分离》—— 陈彩华

《架构设计方法初探》 —— 陈彩华

《分库分表、主从、读写分离》

本文分享自微信公众号 - 芋道源码(YunaiV)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-09-20

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小文博客

在线图片识别系统Ver2.0

该工具是小文博客基于Django框架开发的图片识别系统,调用腾讯云API,目前可识别身份证、驾驶证、行驶证、营业执照、印刷体、手写体等十几种图片。在Ver1.0...

3.9K30
来自专栏Petrichor的专栏

apt-get指令

apt-cache search package #搜索包(相当于yum list | grep pkg) apt-cache show packag...

23310
来自专栏Petrichor的专栏

科普:论文上附有的 arXiv 是干嘛的

简单来说,为了防止自己的idea在论文被收录前被别人剽窃,我们会将预稿上传到arvix作为预收录,因此这就是个可以证明论文原创性(上传时间戳)的文档收录网站 。

9.1K20
来自专栏Petrichor的专栏

怎么准备年后的实习生

  首先,一份好的简历一定要包括足够的个人信息:姓名、学校、电话、电子邮箱等。信息足够到:一定能联系到你并且知道你是否是应届生。关于照片,我的官腔:其实加不加是...

21520
来自专栏Petrichor的专栏

搜索指令

find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。 与查询数据库(/var/lib/locatedb)文件不同,find查找的是磁盘空间。

19220
来自专栏魏艾斯博客www.vpsss.net

腾讯云数据库专场特惠 2.5 折起 新用户 1 元体验 2060 元升级/续费大礼包免费领

腾讯云数据库专场特惠活动开始,大家知道腾讯云是国内重量级的云服务提供商,和阿里云一样也占据了国内云服务器的很大市场份额。这次针对云数据库的专场特惠,腾讯云也拿出...

25830
来自专栏Petrichor的专栏

Dataset 列表:机器学习研究

In computer vision, face images have been used extensively to develop face recog...

86610
来自专栏非著名程序员

@所有程序员:是时候都来玩玩它了

到底是什么功能呢?昨天晚上已经刷爆了朋友圈,看过的朋友可能知道了,那就是:「云开发」功能。

13110
来自专栏程序猿DD

初级Java程序员需要掌握哪些主流技术才能拿20K?

傻呀,干嘛不使用全文检索工具lucene或者分布式搜索Elasticsearch来优化搜索服务。

65020
来自专栏Hadoop实操

聊聊个人对安装部署CDH集群前置准备的理解

这一步可以参考我之前写的文章《如何在HP dl380 Gen9服务器上安装Redhat 7.2并配置软RAID》、《如何为Hadoop集群服务器绑定双万兆网卡》

38340

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励