数据库分库分表实践:tech-pdai-spring-demos中的Sharding-JDBC配置指南
数据库分库分表实践tech-pdai-spring-demos中的Sharding-JDBC配置指南【免费下载链接】tech-pdai-spring-demosSpring Framework5/SpringBoot 2.5.x Demos项目地址: https://gitcode.com/gh_mirrors/te/tech-pdai-spring-demos在现代应用开发中随着数据量的快速增长数据库分库分表已成为解决性能瓶颈的关键技术。tech-pdai-spring-demos项目提供了基于Sharding-JDBC的完整分库分表解决方案帮助开发者轻松实现数据分片策略。本文将详细介绍如何在该项目中配置和使用Sharding-JDBC进行表级分片适合新手快速上手分库分表实践。为什么选择Sharding-JDBCSharding-JDBC作为轻量级的分布式数据库中间件具有以下核心优势无侵入性完全兼容JDBC和各种ORM框架无需修改业务代码灵活分片策略支持行表达式、自定义算法等多种分片方式读写分离可配合主从架构实现读写分离分布式事务提供柔性事务支持在tech-pdai-spring-demos项目中多个模块展示了Sharding-JDBC的不同应用场景包括241-springboot-demo-shardingjdbc-mybatis-tables表分片243-springboot-demo-shardingjdbc-jpa-tablesJPA集成表分片244-springboot-demo-shardingjdbc-jpa-tenant-db多租户分库246-springboot-demo-shardingjdbc-jpa-masterslave主从架构快速开始表分片环境搭建1. 引入Sharding-JDBC依赖在项目的pom.xml中添加Sharding-JDBC Starter依赖以241-springboot-demo-shardingjdbc-mybatis-tables模块为例dependency groupIdorg.apache.shardingsphere/groupId artifactIdsharding-jdbc-spring-boot-starter/artifactId version4.1.1/version /dependency完整的依赖配置可参考241-springboot-demo-shardingjdbc-mybatis-tables/pom.xml2. 配置数据源与分片规则在application.yml中配置数据源和分片策略核心配置如下spring: shardingsphere: datasource: names: ds ds: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.cj.jdbc.Driver jdbc-url: jdbc:mysql://localhost:3306/test_db_sharding?allowPublicKeyRetrievaltrueuseSSLfalse username: test password: bfXa4Pt2lUUScy8jakXf sharding: tables: tb_user: actual-data-nodes: ds.tb_user_$-{0..1} table-strategy: inline: sharding-column: id algorithm-expression: tb_user_$-{id % 2} key-generator: column: id type: SNOWFLAKE上述配置实现了使用单个数据源(ds)将tb_user表按id取模2分为tb_user_0和tb_user_1两个实际表使用雪花算法(SNOWFLAKE)生成分布式ID完整配置文件路径241-springboot-demo-shardingjdbc-mybatis-tables/src/main/resources/application.yml核心分片策略详解行表达式分片策略Sharding-JDBC最常用的分片方式通过inline表达式定义分片规则table-strategy: inline: sharding-column: id algorithm-expression: tb_user_$-{id % 2}语法说明$-{}行表达式标识id % 2按id字段取模2结果为0时路由到tb_user_0为1时路由到tb_user_1分布式ID生成配置雪花算法生成全局唯一IDkey-generator: column: id type: SNOWFLAKE props: worker: id: 123worker.id节点ID分布式环境下需保证唯一支持的ID生成器SNOWFLAKE、UUID、LEAF等多场景分库分表示例1. 多租户分库方案在244-springboot-demo-shardingjdbc-jpa-tenant-db模块中实现了基于租户ID的分库策略spring: shardingsphere: sharding: default-database-strategy: inline: sharding-column: tenant_id algorithm-expression: ds_$-{tenant_id % 2}通过default-database-strategy配置默认分库策略所有表都会按tenant_id路由到不同数据库。2. 主从复制与读写分离246-springboot-demo-shardingjdbc-jpa-masterslave模块展示了如何配置读写分离spring: shardingsphere: rules: readwrite-splitting: >git clone https://gitcode.com/gh_mirrors/te/tech-pdai-spring-demos选择合适的Sharding-JDBC模块表分片241-springboot-demo-shardingjdbc-mybatis-tablesJPA集成243-springboot-demo-shardingjdbc-jpa-tables多租户分库244-springboot-demo-shardingjdbc-jpa-tenant-db修改数据库配置编辑application.yml中的数据库连接信息创建对应的分片数据库和表运行测试cd 241-springboot-demo-shardingjdbc-mybatis-tables mvn spring-boot:run常见问题解决1. 分片键必须出现在SQL中错误示例SELECT * FROM tb_user WHERE name test正确示例SELECT * FROM tb_user WHERE id 1 AND name test2. 不支持的SQL函数Sharding-JDBC对部分SQL函数有限制如不支持LAST_INSERT_ID()应使用雪花算法等分布式ID生成策略。3. 事务支持默认情况下Sharding-JDBC使用本地事务如需分布式事务支持需添加额外配置spring: shardingsphere: rules: transaction: type: XA props: xa-transaction-manager-type: Atomikos总结tech-pdai-spring-demos项目提供了丰富的Sharding-JDBC实践案例从基础的表分片到复杂的多租户分库覆盖了大部分实际应用场景。通过本文介绍的配置方法开发者可以快速掌握分库分表技术为高并发、大数据量应用提供可靠的数据存储解决方案。建议结合具体业务场景选择合适的分片策略并通过项目中的测试用例深入理解Sharding-JDBC的实现原理。【免费下载链接】tech-pdai-spring-demosSpring Framework5/SpringBoot 2.5.x Demos项目地址: https://gitcode.com/gh_mirrors/te/tech-pdai-spring-demos创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

如何解决Docker Registry部署瓶颈?Docket分布式传输架构全解析

如何解决Docker Registry部署瓶颈?Docket分布式传输架构全解析

如何解决Docker Registry部署瓶颈?Docket分布式传输架构全解析 【免费下载链接】docket Docket - Custom docker registry that allows for lightning fast deploys through bittorrent 项目地址: https://gitcode.com/gh_mirrors/do/docket 在大规模容器化部…

2026/7/29 21:07:00 阅读更多 →
Git 分支合并实战指南

Git 分支合并实战指南

文章目录 🎯 推荐方案:使用 Merge(团队协作首选)步骤 1:切换到 main 分支并拉取最新代码步骤 2:切换回你的功能分支步骤 3:将 main 的最新代码合并到你的分支步骤 4:推送到远程步骤 …

2026/7/29 21:07:00 阅读更多 →
高效编码模式:状态机与事件驱动

高效编码模式:状态机与事件驱动

一句话定调:简单说,状态机就是“把一件事拆成几个固定的‘剧本场景’,每个场景只演自己的戏”;事件驱动就是“来了什么事才去做什么事,没事就歇着”。 先从你的日常说起 想象你手里有一个 自动售货机。你走过去时&…

2026/7/29 21:06:00 阅读更多 →

最新新闻

为什么选择iDRAC-Redfish-Scripting?Dell PowerEdge服务器自动化管理的终极解决方案

为什么选择iDRAC-Redfish-Scripting?Dell PowerEdge服务器自动化管理的终极解决方案

为什么选择iDRAC-Redfish-Scripting?Dell PowerEdge服务器自动化管理的终极解决方案 【免费下载链接】iDRAC-Redfish-Scripting Python and PowerShell scripting for Dell EMC PowerEdge iDRAC REST API with DMTF Redfish 项目地址: https://gitcode.com/gh_mir…

2026/7/29 21:13:02 阅读更多 →
seqlearn评估指标详解:Bio-F1分数与交叉验证最佳实践

seqlearn评估指标详解:Bio-F1分数与交叉验证最佳实践

seqlearn评估指标详解:Bio-F1分数与交叉验证最佳实践 【免费下载链接】seqlearn Sequence learning toolkit for Python 项目地址: https://gitcode.com/gh_mirrors/se/seqlearn seqlearn是一个专注于序列学习的Python工具包,提供了Bio-F1分数计算…

2026/7/29 21:13:02 阅读更多 →
信号处理中的截止频率:概念、计算与应用

信号处理中的截止频率:概念、计算与应用

1. 什么是截止频率? 在信号处理领域,截止频率(Cutoff Frequency)是一个至关重要的概念。它指的是滤波器对信号开始产生显著衰减的临界频率点。这个频率点通常定义为信号功率下降至输入功率的50%(即-3dB点)时…

2026/7/29 21:13:02 阅读更多 →
如何使用SPARTA快速入门空间音频制作:从安装到第一个3D音效项目

如何使用SPARTA快速入门空间音频制作:从安装到第一个3D音效项目

如何使用SPARTA快速入门空间音频制作:从安装到第一个3D音效项目 【免费下载链接】SPARTA A collection of spatial audio plug-ins developed using JUCE and the Spatial_Audio_Framework 项目地址: https://gitcode.com/gh_mirrors/sparta2/SPARTA SPARTA是…

2026/7/29 21:13:02 阅读更多 →
AG Kit文档生成案例:自动创建专业文档的实例

AG Kit文档生成案例:自动创建专业文档的实例

AG Kit文档生成案例:自动创建专业文档的实例 【免费下载链接】ag-kit 项目地址: https://gitcode.com/GitHub_Trending/an/ag-kit AG Kit是一款模块化AI代理工具包(Modular AI Agent Toolkit),能够帮助开发者快速构建和部…

2026/7/29 21:13:02 阅读更多 →
AG Kit社区活动:参与AG Kit开发与讨论的机会

AG Kit社区活动:参与AG Kit开发与讨论的机会

AG Kit社区活动:参与AG Kit开发与讨论的机会 【免费下载链接】ag-kit 项目地址: https://gitcode.com/GitHub_Trending/an/ag-kit AG Kit是一款模块化AI代理工具包(Modular AI Agent Toolkit),为开发者提供构建和扩展AI代…

2026/7/29 21:12:02 阅读更多 →

日新闻

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

一、本文介绍 🔥本文在RT-DETR多模态融合目标检测中引入RLAB残差线性注意力模块,可在不同模态特征交互阶段进行多次残差细化,使可见光、红外等特征在尺度、语义和空间位置上更好对齐;随后将细化特征与解码器输出拼接并生成Q、K、V,通过线性注意力自适应强化关键通道、目…

2026/7/29 0:00:23 阅读更多 →
AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础 在上一期「AI编程系列」中,我们学习了如何构建一个基础的 AI 问答系统,通过简单的输入输出让模型回应问题。但现实世界中的 AI 应用往往需要处理更复杂的场景:…

2026/7/29 0:00:23 阅读更多 →
AI智能体开发实战:从工具调用到企业级部署

AI智能体开发实战:从工具调用到企业级部署

1. 从被动问答到主动执行:AI Agent的范式转变过去两年,大语言模型最显著的应用形态是聊天机器人——用户提问,AI回答。但真正的生产力革命发生在2023年下半年:当AI学会主动调用工具完成任务时,生产力工具的历史被彻底改…

2026/7/29 0:00:23 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/29 15:00:03 阅读更多 →

月新闻