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

做者 陈彩华
文章转载交流请联系 caison@aliyun.com
复制代码

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

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

分库分表概述

分库分表概述

读写分离分散数据库读写操做压力,分库分表分散存储压力微信

适用场景

适用场景

相似读写分离,分库分表也是肯定没有其余优化空间以后才采起的优化方案。那若是业务真的发展很快岂不是很快要进行分库分表了?那为什么不一开始就设计好呢?markdown

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

首先,这里的“若是”事实上发生的几率比较低,作10个业务有一个业务能活下去就很不错了,更况且快速发展,和中彩票的几率差很少。若是咱们每一个业务上来就按照淘宝、微信的规模去作架构设计,不但会累死本身,还会害死业务ide

其次,若是业务真的发展很快,后面进行分库分表也不迟。由于业务发展好,相应的资源投入就会加大,能够投入更多的人和更多的钱,那业务分库带来的代码和业务复杂问题就能够经过加人来解决,成本问题也能够经过增长资金来解决。oop

业务分库

业务分库

示例

业务分表

业务分表概述

业务分表

拆分方式

带来的问题

垂直分表

增长表操做的次数post

水平分表

  • 路由问题

路由问题

  • 数据库操做问题

数据库操做问题

实现方法

实现方法

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

参考学习

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

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

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

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

相关文章
相关标签/搜索