issues
search
dyrnq
/
sharding-demo
sharding-jdbc 读写分离与分库分表的小 demo
0
stars
0
forks
source link
Sharding And Partitioning
#9
Open
dyrnq
opened
11 hours ago
dyrnq
commented
11 hours ago
db
table
e.g.
1
1
tb_user
1
m
tb_user_0 / tb_user_1 / tb_user_m
n
1
db_0.tb_user / db_1.tb_user / db_n.tb_user
n
m
db_0.tb_user_0 / db_0.tb_user_1 /db_1.tb_user_0 / db_1.tb_user_1
dyrnq
commented
9 hours ago
分库分表的种类
水平分库(Horizontal Sharding):
将一个数据库中的数据行分散到多个数据库中。每个数据库存储相同表结构的数据,但包含不同的数据行。
实现方式:常见的方法有使用哈希函数或范围划分(如按用户ID、时间等)来决定数据行存放在哪个数据库。
水平分表(Horizontal Partitioning):
将一个表中的数据行分散到多个表中。每个表存储相同的列结构,但包含不同的数据行。
实现方式:可以通过哈希、范围或列表等方式进行划分。例如,可以将订单数据按订单ID范围划分到多个订单表中。
垂直分库(Vertical Sharding):
将一个数据库中的表按功能或模块划分到不同的数据库中。每个数据库存储不同的表。
实现方式:例如,将用户信息、订单信息和商品信息分别存储在不同的数据库中,以减少资源竞争。
垂直分表(Vertical Partitioning):
将一个表中的列按功能或特性划分到多个表中。每个表存储不同的列。
实现方式:例如,用户表可以拆分为基本信息表和扩展信息表,以提高查询效率。