分库分表
2025-4-13
| 2025-4-13
Words 611Read Time 2 min
type
status
date
slug
summary
tags
category
icon
password
😀
这里写文章的前言: 一个简单的开头,简述这篇文章讨论的问题、目标、人物、背景是什么?并简述你给出的答案。
可以说说你的故事:阻碍、努力、结果成果,意外与转折。

分库分表

什么是分库

分库就是在表数量不变的情况下,将两个表放在不同的数据库里
notion image

分表

分表是指在库数量不变的情况下,对表进行拆分
 
notion image

分库分表

是指将数据库和表都进行拆分,数量都发生变化。
notion image

分库分表的方式

水平拆分,垂直拆分,混合拆分
水平分表
水平分表是指表结构不变,分成多个表。数据放在不同的表里。
切分后的后果:
  • 每个表的结构一样
  • 每个表的数据不一样
  • 全部分表的数据合起来是所有数据
notion image
水平分库
将表水平分到不同的库,使得每个库具有相同的表,表的数据不同,跟水平分表类似,一般先水平分表,再水平分库
垂直分表
将一个表中的字段结构拆分到多张表,拆分完
  • 表结构不一致
  • 表数据不一致
  • 所有表的字段合起来是原表的字段
举例:如下图,order 表,根据字段垂直切分,切分后 order_base表包含一部分字段的数据 和 order_info表包含另一部分字段的数据。
notion image
垂直分库
将一个库的表放到不同的库里
notion image

为什么要分库分表

单表或者数据库出现了瓶颈
单库的瓶颈常有以下的情况:
  • 数据库的磁盘不足,数据占满了空间
  • 数据库服务器cpu压力过大,读写性能下降
  • 数据库服务器内存不足
  • 数据库连接数过多,无法升配
单表出现性能瓶颈
单表通常遇到的情况
一个表的数据量过大,导致读写性能较慢

微服务化

根据业务架构进行分库分表,比如用户的数据放在一个数据库,订单数据放在一个数据库,等等。
notion image
 
 
mybatis插件鸽了-鸽了
Loading...