Sharding-JDBC笔记1

Sharding-JDBC笔记1

  • 1.分库分表
    • 1.1 垂直分库
    • 1.2 垂直分表
    • 1.3 水平分库
    • 1.4 水平分表
  • 2.存在问题
    • 2.1 事务一致性
    • 2.2 跨节点关联查询
    • 2.3 跨节点分页、排序函数
    • 2.4 主键避重
    • 2.5 公共表

1.分库分表

分库分表就是为了解决由于数据量过大而导致数据库性能降低的问题,将原来独立的数据库拆分成若干数据库组成,将数据大表拆分成若干数据表组成,使得单一数据库、单一数据表的数据量变小,从而达到提升数据库性能的目的。

1.1 垂直分库

在这里插入图片描述按照业务将数据表分布到不同的数据库,从而达到多个服务器共同分摊压力的效果,但是依然没有解决单表数据量过大的问题。
优点:
解决业务层面的耦合,业务清晰能对不同业务的数据进行分级管理、维护、监控、扩展等高并发场景下,垂直分库一定程度的提升IO、数据库连接数、降低单机硬件资源的瓶颈。

1.2 垂直分表

在这里插入图片描述
就是将表中的字段按照使用频次的高低进行划分

原则:

  • 把不常用的字段单独放在一张表;

  • 把text,blob等大字段拆分出来放在附表中;

  • 经常组合查询的列放在一张表中

1.3 水平分库

在这里插入图片描述很容易理解,就是让表中的数据划分到不同的库中

解决了单库大数据,高并发的性能瓶颈。提高了系统的稳定性及可用性

1.4 水平分表

在这里插入图片描述
顾名思义,就是在一个数据库中,将同一个表复制,表的结构相同,按照某种规则存储不同的数据。比如按照id将商品信息写到不同的表中。

2.存在问题

2.1 事务一致性

分库分表不可避免带来事务一致性的问题,因为表和库可能在不同的服务器上

2.2 跨节点关联查询

原来的一张表可能分布在不同的数据库,不同的表也可能涉及到关联查询等

2.3 跨节点分页、排序函数

比如limit分页、order by排序等问题。

2.4 主键避重

数据库不能采用自增主键,要采用分布式id,保证全局唯一

2.5 公共表

实际的应用场景中,参数表、数据字典表等都是数据量较小,变动少,而且属于高频联合查询的依赖表。例子中地理区域表也属于此类型。可以将这类表在每个数据库都保存一份,所有对公共表的更新操作都同时发送到所有分库执行。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

操作符不存在:sde.st_geometry ^ !sde.st_geometry建议 SQL函 数st_intersects在内联inlining期间

操作符不存在:sde.st_geometry ^ !sde.st_geometry建议 SQL函 数st_intersects在内联inlining期间 问题:最近在使用SQL图形处理函数处理图形时,莫名奇妙报如下错误,甚是费解 于是开始四处"寻医问药" 1、nav…

Spark集群的搭建

1.1搭建Spark集群 Spark集群环境可分为单机版环境、单机伪分布式环境和完全分布式环境。本节任务是学习如何搭建不同模式的Spark集群,并查看Spark的服务监控。读者可从官网下载Spark安装包,本文使用的是spark-2.0.0-bin-hadoop2.7.gz。 1.1.1搭建单机版…

“开挂”的WAAP全站防护是云海驰骋的必备

何为攻击? 网络和应用是攻击的两大阵地 网络攻击像僵尸:简单、粗暴、让人猝不及防 显著特征:流量大,并发高 应用攻击像幽灵:复杂、神秘、让人摸不着头脑 显著特征:流量小、隐蔽强 攻击不像“馅饼”&…

OpenHarmony实战开发-组件复用实践。

若开发者的应用中存在以下场景,并成为UI线程的帧率瓶颈,应该考虑使用组件复用机制提升应用性能: 滑动场景下对同一类自定义组件的实例进行频繁的创建与销毁。反复切换条件渲染的控制分支,且控制分支中的组件子树结构比较复杂。 …

SpringBoot3 + Vue3 + Element-Plus + TS 实现动态二级菜单级联选择器

SpringBoot3 Vue3 Element-Plus TS 实现动态二级菜单选择器 1、效果展示1.1 点击效果1.2 选择效果1.3 返回值1.4 模拟后端返回数据 2、前端代码2.1 UnusedList.vue2.2 goodsType.ts2.3 http.ts 3、后端代码3.1 GoodsCategoryController.java3.2 GoodsCategoryService.java3.…

读后感-有效沟通

司内的学习已开展8期,内容主要以如何沟通为主,这里将根据个人的学习体会,对所学内容进行梳理与整合,以期更好地吸收和应用所学知识。 沟通是一门技术,其轨迹可循。自来熟的态度,一上来便滔滔不绝地发表言论…

ThingsBoard系统层配置邮件发送

1、前沿 2、案例 1、管理员的身份进行登录 2、选择账户,并将邮箱更改为自己的邮箱,并保存配置 3、退出账号,使用邮箱进行登录,密码还是跟之前一样 4、登录后选择设置-发送邮件 5、登录邮箱申请邮箱的密钥 ​7、 按照图片填…

Mysql The last packet sent successfully to the server was 0 milliseconds ago.

项目启动后,报错,但是我的navicat 数据库连接工具是连接上的,没有问题的,但是程序就是连接不上。端口放开了,防火墙也放开了 先说问题:是网络问题, 如何解决:因为我的机子上又跑了…

计算机网络——数据链路层(介质访问控制)

计算机网络——数据链路层(介质访问控制) 介质访问控制静态划分信道动态划分信道ALOHA协议纯ALOHA(Pure ALOHA)原理特点 分槽ALOHA(Slotted ALOHA)原理特点 CSMA协议工作流程特点 CSMA-CD 协议工作原理主要…

RabbitMQ学习记录

核心概念 Brocker:消息队列服务器实体 Exchange(消息交换机):它指定消息按什么规则,路由到哪个队列。 Queue(消息队列载体):每个消息都会被投入到一个或多个队列。 Binding(绑定):它的作用就是把exchange和queue按…

电磁兼容(EMC):静电放电(ESD)抗扰度试验深度解读(三)

目录 1. 静电抗扰度试验标准试验程序定制的目的 2. 环境条件对充电量的影响 3. 环境级别与空气和接触放电的关系 4. 试验等级的选择 1. 静电抗扰度试验标准试验程序定制的目的 保护设备免受静电放电影响的问题对制造厂和用户来说都是相当重要的。 随着微电子元件的广泛应用…

gradle安装和部署

准备工作 下载地址:https://gradle.org/releases/ 安装和配置环境变量 将压缩包解压到/usr/local/目录下 unzip gradle-8.7-bin.zip -d /usr/local/找到gradle的安装目录/usr/local/gradle-8.7 编辑/etc/vi /etc/profileprofile配置环境变量(这是ce…

《强势》如何在工作、恋爱和人际交往中快速取得主导权? - 三余书屋 3ysw.net

强势:如何在工作、恋爱和人际交往中快速取得主导权? 大家好,今天我们要解读的是一本名为《强势》的书籍。我将花费大约20分钟的时间,为您详细讲解这本书的精华内容,包括如何在家庭关系、职场关系和朋友关系中迅速取得…

Flowable 基本用法

一. 什么是Flowable Flowable 是一个基于 Java 的开源工作流引擎,用于实现和管理业务流程。它提供了强大的工作流引擎和一套丰富的工具,使开发人员能够轻松地建模、部署、执行和监控各种类型的业务流程。Flowable 是 Activiti 工作流引擎的一个分支&am…

项目7-音乐播放器4+喜欢/收藏音乐

1.喜欢/收藏音乐模块设计 1.1 请求响应模块设计 请求: { post, /lovemusic/likeMusic data: id//音乐id } 响应: { "status": 0, "message": "点赞音乐成功", "da…

环境监测系统--------MQ系列气体检测模块驱动教程(保姆级教程)

⏩ 大家好哇!我是小光,嵌入式爱好者,一个想要成为系统架构师的大三学生。 ⏩在环境检测中我们经常会用到检测气体的传感器,检测乙醇、甲烷、一氧化碳、氢气等等,博主呕心沥血对MQ系列传感器做一个史上最详细的使用教程…

UML类图详解

UML类图结构解析 UML类图是一种结构图,用于描述系统的静态结构。它主要用于展示系统中的类(class)、接口(interface)、协作(collaboration)、数据类型(data type)等以及…

CH341A/B USB转USART/I2C/SPI介绍

CH341A/B USB转USART/I2C/SPI介绍 📍CH341官方文档:https://www.wch.cn/downloads/CH341DS2_PDF.html CH341A/B是一个USB总线的转接芯片,通过USB总线提供异步串口、打印口、并口以及常用的2线和4线等同步串行接口。 🍁芯片封装&a…

翻译 《The Old New Thing》 - Returning values from a dialog procedure

Returning values from a dialog procedure - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20031107-00/?p41923 Raymond Chen 2003年11月7日 简要 这篇文章由Raymond Chen撰写,解释了对话框过程如何从Windows编程中返回值。他…

如何实现在 Windows 上运行 Linux 程序?

在Windows 上运行Linux程序是可以通过以下几种方法实现: 1.使用 Windows Subsystem for Linux (WSL): WSL是微软提供的功能,可以在Windows 10上运行一个完整的Linux系统。用户可以在Microsoft Store中安装所需的 在开始前我有一些资料,是我根据网友给的…