ShardingSphere

news2024/11/19 17:31:47

一、基本概念

1、什么是ShardingSphere

1、一套开源的分布式数据库中间件解决方案

2、有三个产品:Sharding-JDBC和Sharding-Proxy、Sharding-Sidecar

3、定位为关系型数据库中间件,合理在分布式环境下使用关系型数据库操作

2、分库分表

1什么是分库分表

1、数据库的数据量是不可控制的,随着时间和业务发展,造成表里面数据越来越多,如果再去对数据库表crud操作,造成性能问题。

2、方案1:从硬件上

3、方案2:分库分表

*为了解决由于数量过大而造成数据库性能降低问题。

2分库分表的方式

分库分表有两种方式:垂直切分和水平切分

垂直切分:垂直分表和垂直分库

水平切分:水平分表和水平分库

1、垂直分表

(1)操作数据库中某张表,把这张表中一部分字段数据存到一张新表里面,再把这张表另一部分字段数据存到另外的一张表里面。

2、垂直分库

(1)把单一数据库按照业务进行划分、专库专表

3、水平分库

(1)创建表结构相同的几个库,将大量数据根据一定规则均分存储到每个库中。

4、水平分表

一个数据库中创建多个结构相同的表,将大量数据根据一定规则均分存储到每个表中。

3分库分表应用和问题

1、应用

(1)在数据库设计时候考虑垂直分库和垂直分表

(2)随着数据库数据量增加,不要马上考虑水平切分,首先考虑缓存处理,读写分离,使用索引等等方式,如果这些方式不能根本解决问题了,再考虑做水平分库和水平分表

2、分库分表问题

(1)跨节点连接查询问题(分页、排序)

(2)多数据源管理问题

二、Sharding-JDBC

1Sharding-JDBC简介

1、是轻量级java框架,是增强版的jdbc驱动

2、Sharding-JDBC:不是做分库分表,主要做两个功能:数据分片和读写分离,简化对分库分表之后数据相关操作

2Sharding-JDBC实现(水平分表)

1、搭建环境

(1)SpringBoot+MybatisPlus+Sharding-JDBC+Druid连接池

(2)创建SpringBoot工程

(3)引入需要的依赖

2、按照水平分表的方式创建数据库、创建数据库表

(1)创建数据库:course_db

(2)在数据库创建两张表course_1和course_2 

(3)约定规则:如果添加课程id是偶数把数据添加到course_1,如果是奇数添加到course_2

 3、编写代码实现对分库分表数据的操作

(1)创建实体类,mapper

4、配置Sharding-JDBC分片策略

(1)在项目application.propeties配置文件进行配置·

5、编写测试代码

三、Sharding-Proxy

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/641255.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文物和古建筑防雷综合解决方案

文物和古建筑作为珍贵的历史遗产,需要受到专业的防雷保护,以保持其完整性和安全性。本文将介绍详细的文物和古建筑防雷方案和措施,包括避雷针安装、接地系统建设、监测技术和定期维护等。 引言: 文物和古建筑承载着珍贵的历史记忆…

防雷抗浪涌插排插座推荐,同为科技(TOWE)防雷桌面PDU安全可靠

同为科技TOWE双排防雷抗浪涌桌面PDU插座 随着夏天天气越来越热,强对流天气增多,雷雨天气频发。在雷电季节,通常影响家用电器安全的主要原因是由于雷电感应的侵入,特别是对绝缘强度低、过电压耐受力差的微电子产品影响甚大。而所谓…

JVM笔记(二)

JVM内存管理 在之前,我们了解了JVM的大致运作原理以及相关特性,这一章,我们首先会从内存管理说起。 在传统的C/C开发中,我们经常通过使用申请内存的方式来创建对象或是存放某些数据,但是这样也带来了一些额外的问题&…

一次XxlJob调度任务重复执行的问题排查

目录 东老师的问题1. 为什么会重复执行2. 为什么时间间隔改为1min就不会重复执行** 开始排查先看下任务配置 任务第一次执行排查执行类 》JobThreadJobThread的核心逻辑1.循环消费 一个阻塞队列 不断的去消费队列中TriggerParam 这个参数2.看下TriggerParam,这正是我…

硬件学习 软件 Cadence day10 查看网表导入进度,钻孔保护等一些操作

1. 查看网表导入状态。 2. 放置元器件 之前 画板框 3.放置元器件 4.把导入的DXF 文件变成板框 1.首先导入DXF文件 2. 点击按钮 3. 鼠标点击需要 调整为板框的地方 3.1 其中包括边框 3.2 固定的钻孔 5.给钻孔打上保护(防止布线的时候区域错误,在固定的时…

12. AbstractQueuedSynchronizer之AQS

12.1 前置知识 ● 公平锁和非公平锁 ○ 公平锁:锁被释放以后,先申请的线程先得到锁。性能较差一些,因为公平锁为了保证时间上的绝对顺序,上下文切换更频繁 ○ 非公平锁:锁被释放以后,后申请的线程可能会先获…

第58讲:Python编程中最难以理解的递归函数核心概念以及应用案例

文章目录 1.递归函数的概念2.递归函数的使用2.1.案例一2.1.1.需求描述2.1.2.使用常规的循环来实现2.1.3.使用递归函数实现 2.2.案例二2.2.1.需求描述2.2.2.使用常规的循环来实现2.2.3.使用递归函数实现 3.使用递归函数计算阶乘3.1.阶乘的概念3.2.使用递归函数实现阶乘的算法3.3…

分布式Profinet IO模块

PROFINET IO模块是一种用于工业自动化控制系统中的设备控制模块。它使用以太网技术,在现场设备和处理器/控制器之间提供快速、精确和可靠的数据交换。PROFINET IO模块通常是面向过程的,可以用于监测和控制工业过程中的各种设备和参数,如传感器…

Vue中使用editor.md(2):添加拖拽图片上传功能

0. 背景 在对editor.md简单使用后,希望添加图片拖拽或粘贴上传的功能。 简单使用参考:Vue中使用editor.md(1):简单使用 1. 实现 1.1 添加粘贴监听 // 使用axios import axios from /api/indexfunction initPasteDra…

什么是Vue的插件?如编写自定义 Plugin?

什么是Vue的插件? 在Vue开发中,我们经常需要使用一些第三方库或功能性模块,Vue插件就是一种将这些库或模块集成到Vue应用中的方式。插件是Vue.js提供的一种机制,用于扩展Vue的功能。插件通常用于封装某些特定的功能,例…

【AI人工智能】 你如果要使用最强大的语言模型,你还要有最精美的浏览器标签页iTab (2)

🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享博主 🐋 希望大家多多支持一下, 我们一起进步!😄 🏅 如果文章对你有帮助的话,欢迎评论 💬点赞&#x1…

UnityA*导航算法,通俗易懂

首先A*寻路算法分为2D算法和3D算法,目前它甚至不如NAVMesh算法效率高。但NAVMesh不适用于2D,因此2D还是要靠A*算法来进行实现。 当前就来说说2D是如何实现的。 首先2DA*算法先要将地图划分成格子分块标记成二维数组 每个格子依据x,y&#xf…

又一新型技术全面铺开,高精度光刻机已突破壁垒,赶超只是时间

众所周知,光刻机是制造高精度芯片的关键步骤。 随着科技的不断进步,光刻机的精度和速度也在不断提高,使得我们可以制造出更小更精细的芯片,满足了人们对于高性能电子设备的需求。 我国的光刻机技术,国产大飞机&#x…

【华为OD机试真题2023B卷 JAVAJS】二维伞的雨滴效应

华为OD2023(B卷)机试题库全覆盖,刷题指南点这里 二维伞的雨滴效应 知识点递归树 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 普通的伞在二维平面世界中,左右两侧均有一条边,而两侧伞边最下面各有一个伞坠子,雨滴落到伞面,逐步流到伞坠处,会将伞坠的信息携…

UML类图(二)

相信希望,相信自己 上一章简单介绍了 设计模式的原则(一), 如果没有看过,请观看上一章 本文参考文章: 常见UML符号详解 UML (Unified modeling language) 统一建模语言,是一种用于软件系统分析和设计的语言工具, 它用于帮助软件开发人员进行…

强烈推荐协同办公的三个小工具

强烈推荐协同办公的三个小工具 这里给大家推荐三个可以用于协同办公的小软件工具。那么,什么是协同办公呢?直接下定义给个概念那就不好玩了,所以我直接推荐这么几个协同软件大家就懂了。 ONLYOFFICE办公软件 具体的软件截图我这里就不贴了&…

【Android】Frida Hook 文件读写操作

前言 在挖掘客户端漏洞的时候,通常会关注应用对什么文件进行了读写操作,当我们能控制被读的文件或观测到敏感写入的文件,通常可以造成一定危害。本文详细介绍了如何通过frida监控文件读写操作。 相关知识 1. 读写相关调用api 在Linux系统…

有哪些自媒体平台有播放量就会有收益?

自媒体是近年来兴起的一种新型媒体,指的是由个人或小团体通过互联网自行发布内容,通过社交媒体等渠道传播和推广的媒体形态。自媒体平台的出现,让更多人能够自由发表意见和观点,实现了信息的自由传播。同时,随着互联网…

跨平台.NET应用UI组件DevExpress XAF v22.2亮点 - 支持.NET 7

DevExpress XAF是一款强大的现代应用程序框架,允许同时开发ASP.NET和WinForms。DevExpress XAF采用模块化设计,开发人员可以选择内建模块,也可以自行创建,从而以更快的速度和比开发人员当前更强有力的方式创建应用程序。 在新版中…

数据结构——二叉树基础结构篇(C语言)

引言 现在是北京时间2023年6月13日9点11分。从决定要开始减脂之后,饥饿总是伴随着我。一觉起来肚子咕咕叫,我还是想先把文章发了再吃第一餐。燕麦加蛋白粉几乎伴随了我大学的第一年早饭。昨天练了一个小时背,练背后还做了45分钟有氧。空腹训…