Sharding-JDBC分库分表,效果究竟有多惊艳?

2026-06-10 07:000阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计5189个文字,预计阅读时间需要21分钟。

Sharding-JDBC分库分表,效果究竟有多惊艳?

各位好,我是本期ShardingSphere专题的第一篇文章,将简要介绍Sharding-JDBC实现分库分表的详细配置。关于分库分表带来的问题和什么是分库分表,这里不再赘述,相信大家已有了解。

大家好,我是不才陈某~

这是《ShardingSphere 进阶》专栏的第一篇文章,介绍一下Sharding-JDBC实现分库分表的详细配置。

分库分表带来的问题

关于什么是分库分表这里不再细说了,相信大家都知道,有不清楚的可以看我之前的文章:​​聊聊分库分表​​

从单一表、单一库切分成多库、多表对于性能的提升是必然的,但是同时也带来了一些问题。

1. 分布式事务问题

由于垂直分库、水平分库,将数据分摊在不同库中,甚至不同的服务器上,势必带来了分布式事务的问题。

对于单库单表的事务很好控制,分布式事务的控制却是非常头疼,但是好在现在已经有成熟的解决方案,想要了解的可以看我之前的文章:​​七种分布式事务解决方案​​

2. 跨节点关联join问题

在切分之前关联查询非常简单,直接SQL JOIN便能解决,但是切分之后数据分摊在不同的节点上,此时JOIN就比较麻烦了,因此切分之后尽量避免JOIN。

解决这一问题的有些方法:

1、全局表

这种很好理解,对于一些全局需要关联的表可以在每个数据节点上都存储一份,一般是一些数据字典表。

全局表在Sharding-JDBC称之为广播表

2、字段冗余

这是一种典型的反范式设计,为了避免关联JOIN,可以将一些冗余字段保存,比如订单表保存userId时,可以将userName也一并保存,这样就避免了和User表的关联JOIN了。

阅读全文

本文共计5189个文字,预计阅读时间需要21分钟。

Sharding-JDBC分库分表,效果究竟有多惊艳?

各位好,我是本期ShardingSphere专题的第一篇文章,将简要介绍Sharding-JDBC实现分库分表的详细配置。关于分库分表带来的问题和什么是分库分表,这里不再赘述,相信大家已有了解。

大家好,我是不才陈某~

这是《ShardingSphere 进阶》专栏的第一篇文章,介绍一下Sharding-JDBC实现分库分表的详细配置。

分库分表带来的问题

关于什么是分库分表这里不再细说了,相信大家都知道,有不清楚的可以看我之前的文章:​​聊聊分库分表​​

从单一表、单一库切分成多库、多表对于性能的提升是必然的,但是同时也带来了一些问题。

1. 分布式事务问题

由于垂直分库、水平分库,将数据分摊在不同库中,甚至不同的服务器上,势必带来了分布式事务的问题。

对于单库单表的事务很好控制,分布式事务的控制却是非常头疼,但是好在现在已经有成熟的解决方案,想要了解的可以看我之前的文章:​​七种分布式事务解决方案​​

2. 跨节点关联join问题

在切分之前关联查询非常简单,直接SQL JOIN便能解决,但是切分之后数据分摊在不同的节点上,此时JOIN就比较麻烦了,因此切分之后尽量避免JOIN。

解决这一问题的有些方法:

1、全局表

这种很好理解,对于一些全局需要关联的表可以在每个数据节点上都存储一份,一般是一些数据字典表。

全局表在Sharding-JDBC称之为广播表

2、字段冗余

这是一种典型的反范式设计,为了避免关联JOIN,可以将一些冗余字段保存,比如订单表保存userId时,可以将userName也一并保存,这样就避免了和User表的关联JOIN了。

阅读全文