美文网首页Java技术升华程序员分布式
浅谈高性能数据库集群——分库分表

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

作者: caison | 来源:发表于2018-07-02 09:29 被阅读25次
作者 陈彩华
文章转载交流请联系 caison@aliyun.com
分库分表

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

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

分库分表概述

分库分表概述

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

适用场景

适用场景

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

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

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

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

业务分库

业务分库 示例

业务分表

业务分表概述

业务分表 拆分方式

带来的问题

垂直分表

增加表操作的次数

水平分表

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

实现方法

实现方法

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

参考

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

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

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

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

相关文章

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

    最近学习了阿里资深技术专家李运华的架构设计关于分库分表的教程,颇有收获,总结一下。 本文主要介绍高性能数据库集群分...

  • 数据库优化方案之分库分表

    最近学习了阿里资深技术专家李运华的架构设计关于分库分表的教程,颇有收获,总结一下。本文主要介绍高性能数据库集群分库...

  • 高性能数据库集群:分库分表

    高性能数据库集群:分库分表 读写分离分散了数据库读写操作的压力,但没有分散存储压力,当数据量达到千万甚至上亿条的时...

  • 集群随想

    SOA框架集群 1,数据库集群,mycat负责读写分离,分表分库,mysql主从备份可设置,主要的集群是mycat...

  • Mysql的分库分表,水平拆分-垂直拆分

    参考文章MySQL分库分表总结参考数据库分库分表策略,如何分库,如何分表?MySQL分库分表原理 MySQL单库数...

  • 15 | 高性能数据库集群:分库分表

    上期我讲了“读写分离”,读写分离分散了数据库读写操作的压力,但没有分散存储压力,当数据量达到千万甚至上亿条的时候,...

  • 高并发 负载均衡 高可用

    高并发解决方案: 1)数据层 数据库集群和库表散列 分表分库 开启索引 开启缓存 表设计优化 Sql语...

  • 49 mycat分片集群mysql分片分表策略

    1、数据库集群如何保证自动增长唯一性2、数据库分表分库策略3、MyCat分片集群策略4、MyCat分片策略原理 M...

  • 2020年PHP最新面试题(含答案)

    1. 数据库设计经验,为什么进行分表?分库?一般多少数据量开始分表?分库?分库分表的目的?什么是数据库垂直拆分?水...

  • 面试官:给我讲一下分库分表方案

    一、数据库瓶颈1、IO瓶颈2、CPU瓶颈二、分库分表1、水平分库2、水平分表3、垂直分库4、垂直分表三、分库分表工...

网友评论

  • affc0047d95a:您好,文章可以转载吗,我会标明作者的出处和来源。
    caison:@雨碎_3d77 可以,没问题

本文标题:浅谈高性能数据库集群——分库分表

本文链接:https://www.haomeiwen.com/subject/axxhuftx.html