shardingjdbc入门-自问自答

news2024/12/23 18:00:40

1:shardingjdbc 是什么,它能做什么,解决了什么问题?

     现实的问题是mysql单表存储是有上线的,因为mysql采用的是 B+ 树类型的索引,在数据量超过阈值的时候,索引的持续变大,会导致访问磁盘的IO次数增加 【对于传统机械硬盘(HDD),随机 I/O 操作的延迟通常在几毫秒到几十毫秒之间。而对于固态硬盘(SSD),随机 I/O 操作的延迟通常在几十微秒到几毫秒之间。NVMe SSD 提供了更高的性能,其随机 I/O 操作延迟可能低至几十微秒。】,进而导致查询性能下降,从而导致系统越来越慢,甚至直接崩掉; 所以数据进行数据拆分,即把数据通过不同的形式放到不同的地方;一般通常有两种拆分方法:水平拆分,垂直拆分;但是同时这种调整,有带来了很多新的挑战,这个框架就是来解决这些新引入的问题的;

详情查看:   数据分片 :: ShardingSphere

主要提供一下功能:数据分片,读写分离,数据库流量治理,分布式事务,数据迁移;这些功能都是和这个框架最初解决的问题是强相关的;

2:shardingjdbc他不能做什么?包含实验性的功能

  1. **跨库事务:**ShardingSphere 不支持跨多个数据库的分布式事务(XA 事务)。如果事务涉及多个数据库,可能需要考虑其他解决方案,如基于消息队列的最终一致性。

  2. **子查询:**ShardingSphere 对子查询的支持有限。例如,它不支持子查询之间的关联操作,如 JOINGROUP BY 和 ORDER BY

  3. **全局表连接:**ShardingSphere 不支持全局表与分片表之间的连接查询。此外,如果连接查询涉及多个分片表,可能会导致性能下降。

  4. **部分 DDL 操作:**ShardingSphere 不支持部分 DDL 操作,如 ALTER TABLETRUNCATE TABLE 等。在需要使用这些操作时,可能需要绕过 ShardingSphere 直接对数据库执行操作。

  5. **复杂 SQL 查询:**ShardingSphere 对于复杂 SQL 查询的支持有限,特别是涉及多表连接、子查询、公共表表达式(CTE)以及窗口函数等高级特性时。

  6. **数据库特定功能:**ShardingSphere 支持多种数据库,但可能无法覆盖所有数据库的特定功能。在使用特定数据库功能时,可能需要考虑兼容性和支持情况。

3:shardingjdbc内部的处理机制是什么样的?

 

    sharding-jdbc分库分表-使用及原理 - 掘金

4:shardingjdbc如何支持limit,group by,order by的,有什么高效的算法吗?,会有什么不足吗?

     分页查询的好文:业界难题-“跨库分页”的四种方案

      一次shardingjdbc踩坑引起的胡思乱想 - 掘金

5:如何读懂shardingjdbc源码?

ShardingJDBC源码阅读(三)解析 - 掘金

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

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

相关文章

【永久服务器】EUserv

1. 请先自行准备网络(我用的伦敦还可以)、以及visa卡,淘宝可以代付,我总共花了97人民币(10.94欧代付费) 现在只能申请一台,多了会被删除,也就是两欧元,然后选择visa卡 选…

正版软件 | RadiAnt DICOM Viewer - 医学图像的PACS DICOM浏览器

辐射蚂蚁DICOM查看器 2023.1 最新版。 新增功能: 长度比计算。椭球体/子弹体积计算。添加了在 DICOM 标记窗口中将特定项目着色和/或固定到顶部的选项。 改进和错误修复: 使用多个关键字(用 |) 分隔)搜索本地存档。…

0基础学习VR全景平台篇第49篇:高级功能-自定义LOGO

功能位置示意 一、本功能将用在哪里? 自定义logo功能,可以在全景作品中自定义植入商企logo,让全景自带推广属性,使宣传效果事半功倍。 备注:不同皮肤自定义logo显示位置不同。 点击这里 查看案例 二、如何使用本功能…

智云通CRM:引领企业数字化转型的利器

在如今的商业竞争中,客户管理是企业成功的关键因素之一。然而,传统的客户管理方式已经无法满足企业日益增长的需求,企业需要一个强大的工具来帮助他们更好地管理客户关系,并实现数字化转型。智云通CRM系统作为最佳解决方案&#x…

Spring Boot 如何防止重复请求?| 超级详细,建议收藏

1. 前言🔥 在日常业务开发中,处理重复请求应该是我们需要经常注意的,在某些情况下是可能重复发送的,如果是查询类操作并无大碍,但其中有些请求是涉及写入操作的,一旦重复了,很可能会导致很严重的后果&#…

【Python】模块导入 ② ( 模块导入语法 | 导入完整模块 | import 导入完整模块 | from 导入完整模块 )

文章目录 一、导入完整模块 - import 导入完整模块1、import 导入完整模块2、代码示例 - 导入 time 时间模块 二、导入完整模块 - from 导入完整模块1、from 导入完整模块2、代码示例 - from 导入完整模块 一、导入完整模块 - import 导入完整模块 1、import 导入完整模块 使用…

Mybatis背景简介及其优缺点

文章目录 1. JDBC简介1.1 jdbc架构图1.2 jdbc例子1.3 jdbc缺点 2. Mybatis2.1 iBATIS是什么2.2 Mybatis是什么2.3 和其他持久层框架的本质区别2.4 Mybatis和Hibernate的共同点2.5 Mybatis的优缺点2.5.1 Mybatis的优点2.5.2 Mybatis的缺点 2.6 Hibernate的优缺点2.6.1 Hibernate…

工作流引擎技术选型

一、主流开源框架介绍 1、工作流相关文档 1.Camunda 官方文档:https://camunda.com/ 中文文档:介绍 | docs.camunda.org 2.Activiti 官方文档:https://www.activiti.org/ 中文文档:[activiti6用户手册 3.Snaker 官方文档&…

【PCIE体系结构十四】电气物理层之发送端FFE

👉个人主页:highman110 👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容 参考书籍:《PCI.EXPRESS系统体系结构标准教材 Mindshare》 参考文章&…

Docker 安装 Nginx,并实现负载均衡

1、获取 nginx 的镜像 # 默认是latest版本docker pull nginx 2、运行 nginx 容器 docker run --name nginx-80 -p 80:80 --rm -d nginx# --name nginx-80 设定容器的名称# -p 80:80 端口进行映射,将本地的80端口映射到容器内部的80端口# --rm 表示容器退出后直接…

云安全技术——Hyper-V虚拟化技术

目录 5-1 了解Hyper-V 5-2 安装Hyper-V 5-3创建虚拟机 Hyper-V虚拟化技术 实验目的 了解 Windows 虚拟化的概念 了解 Hyper-V的背景及发展 了解 Hyper-V 的功能特性 了解 Hyper-V的体系架构 实验要求 能描述 Hyper-V 的功能特性 能在 Windows 2012 R2系统下部署 Hyper-V 能使…

SpringBoot整合MyBatis分页

SpringBoot整合MyBatis分页 一、pagehelper分页1、添加相关依赖2、添加相关配置3、添加分页配置4、添加代码5、测试 二、拦截器分页1、添加相关配置2、添加拦截器代码和配置3、添加代码4、测试4、测试 本文目标: SpringBoot整合Mybatis分页的两种方式,一…

Python基础八

目录 一、Python条件控制语句 1.执行过程 2.if 语句 if中常用的操作运算符: if 嵌套 3.match...case语句 二、Python循环控制语句 1.while循环 while无限循环 while 循环使用 else 语句 2.for 循环语句 for...in...循环 for循环使用else语句 for...in range()…

2023年3季度DAMA-CDGA/CDGP数据治理认证即将开班

DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业…

你知道ai绘画生成器怎么弄吗

在数字时代,艺术也开始走向了自动化。随着人工智能技术的进步,ai绘画软件已经开始逐渐普及。它们可以利用先进的神经网络算法,学习人类艺术家的风格和技巧,从而生成出高度逼真的艺术作品。这些作品虽然没有人类艺术家的创意和灵魂…

Linux系统编程(终端和进程的关系)

文章目录 前言一、终端和控制台二、TTY和PTY三、终端的类型四、Gnome Terminal伪终端总结 前言 本篇文章带大家学习终端和进程的关系,终端相信大家都听过,那么真的理解终端是什么吗?应该有很多同学对于终端只是有一个模糊的概念。那么这篇文…

【算法题】合并两个有序链表、删除字符串 s1 中在字符串 s2 中出现的字符、求一个论坛一天的在线人数分布

合并两个有序链表、删除字符串 s1 中在字符串 s2 中出现的字符、求一个论坛一天的在线人数分布 一、合并两个有序链表1.1、题目描述1.2、思路1.3、代码实现1.4、小结 二、删除字符串 s1 中在字符串 s2 中出现的字符2.1、题目描述2.2、思路2.3、代码实现2.4、小结 三、求一个论坛…

项目进度类知识要点

单代号网络图 六标时法正推法逆推法 六标时法最早开始时间(ES)工期最早完成时间(EF)活动名称/活动编号最迟开始时间(LS)浮动时间(总时差)最迟完成时间(LF) 关键路径、计算项目的总工期 关键路径是最大长度关键路径上的活动是关键活动关键活动之和为总工期 关键路径变化问题…

华为18级工程师三年心血终成趣谈网络协议文档(附大牛讲解)

前言 虽然在大学的时候大家都学过网络协议 ,但是肯定感觉网络协议的知识点非常多 ,非常复杂。学的时候就浑浑噩噩,真正到了实践中更是糊里糊涂,一旦工作中遇到了网络问题,除了会简单地 ping 几下 ,基本没有…

安装Jmeter

Jmeter是Java语言开发,所以需要java环境,所以先安装jdk 1.安装JDK(1.8版本以上) 下载: https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 找到对应的版本: 点击exe文件安装,跟着向导下一步 2.安装jmeter 下载 Jmeter : 版…