博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【数据库】突破单一数据库的性能限制——数据库-分库分表总结 2018-9-20
阅读量:2494 次
发布时间:2019-05-11

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

突破单一数据库的性能限制,之数据库-分库分表总结

分库分表概述

在这里插入图片描述

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

适用场景

在这里插入图片描述

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

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

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

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

业务分库

在这里插入图片描述

在这里插入图片描述

业务分表

业务分表概述

在这里插入图片描述

在这里插入图片描述

带来的问题

垂直分表

增加表操作的次数

水平分表

  • 路由问题

在这里插入图片描述

  • 数据库操作问题

在这里插入图片描述

实现方法

在这里插入图片描述

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

你可能感兴趣的文章
内容提供者的概念
查看>>
单例模式
查看>>
作业六
查看>>
linux phpize
查看>>
蓝牙模块音频BLE数据数传串口AT指令的使用方法
查看>>
75: libreoj #10028 双向宽搜
查看>>
[LeetCode] Remove Duplicate Letters 移除重复字母
查看>>
[LeetCode] 4Sum II 四数之和之二
查看>>
[LeetCode] Task Scheduler 任务行程表
查看>>
[LeetCode] Friends Of Appropriate Ages 适合年龄段的朋友
查看>>
WCF 服务端+客户端动态调用
查看>>
Swift开发图解入门
查看>>
[Js-开发常识]为什么定义实体类属性建议用 Ineger 而不是 int
查看>>
P1137 旅行计划
查看>>
160523、Oracle建立表空间和用户
查看>>
处理机调度
查看>>
CQRS架构
查看>>
atmega8 例程:T1定时器 CTC模式 方波输出
查看>>
CAN控制器的选择
查看>>
sublime代码片段
查看>>