Mysq之——分库分表

Mysq之——分库分表

  • 简介
  • 分库分表的方式
      • 垂直分表
      • 垂直分库
        • 水平分库
        • 水平分表
      • 图解:垂直分表与水平分表(分库类似)
      • 分库分表带来的问题

简介

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

分库分表的方式

分库分表包括分库和分表两个部分,在生产中通常包括垂直分库、水平分库、垂直分表、水平分表四种方

垂直分表

将一个表按照字段分成多表,每个表存储其中一部分字段(根据业务场景按照字段的使用频率区分)

垂直分库

垂直分库是指按照业务将表进行分类,分布到不同的数据库上面,每个库可以放在不同的服务器上,它的核心理念是专库专用。

水平分库

水平分库是把同一个表的数据按一定规则拆到不同的数据库中,每个库可以放在不同的服务器上。

水平分表

水平分表是在同一个数据库内,把同一个表的数据按一定规则拆到多个表中。

优点 :
1.避免IO争抢并减少锁表的几率,
2.解决了单库大数据,高并发的性能瓶颈。提高了系统的稳定性及可用性。

图解:垂直分表与水平分表(分库类似)

垂直分表:
在这里插入图片描述

水平分表:
在这里插入图片描述

分库分表带来的问题

1、事务一致性问题
由于分库分表把数据分布在不同库甚至不同服务器,不可避免会带来分布式事务问题

2、跨节点关联查询
本来可以进行关联查询的两个表分库之后就不在一个数据库,甚至不在一台服务器,无法进行关联查询。
可将原关联查询分为两次查询,第一次查询的结果集中找出关联数据id,然后根据id发起第二次请求,最后将获得到的数据进行拼装。

3、跨节点分页、排序
跨节点多库进行查询时,limit分页、order by排序等问题,就变得比较复杂了。需要先在不同的分片节点中将数据进行排序并返回,然后将不同分片返回的结果集进行汇总和再次排序。
如,进行水平分库后的商品库,按ID倒序排序分页,取第一页

4、主键避重
在分库分表环境中,由于表中数据同时存在不同数据库中,主键值平时使用的自增长将无用武之地,某个分区数据库生成的ID无法保证全局唯一。因此需要单独设计全局主键,以避免跨库主键重复问题。

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

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

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

相关文章

应用层网络协议

tags: [“计算机网络”] descripution: “学习应用层的一些常用协议” 网络协议:约定的信息传输的格式,如几个字节是消息头、消息头记录什么信息之类的;c/s架构:不一定是两台计算机,而是两个应用、两个端口工具&#…

打破技术壁垒,低代码工具带您开启中小电商企业数字化时代

随着互联网技术的不断进步和智能手机的普及,越来越多的消费者选择在网络上购物,这不仅为传统零售业带来巨大冲击,也为中小型电商提供了宝贵的发展机遇。 商务部数据显示,2023年,电子商务持续推动消费恢复增长。1-11月…

异步http接口调用库:httpx

谈到http接口调用,Requests大家并不陌生,例如,robotframework-requests、HttpRunner等HTTP接口测试库/框架都是基于它开发。这里将介绍另一款http接口测试框架:httpx。 它的API和Requests高度一致。 github: GitHub - encode/httpx: A next…

StreamPark + PiflowX 打造新一代大数据计算处理平台

🚀 什么是PiflowX PiFlow 是一个基于分布式计算框架 Spark 开发的大数据流水线系统。该系统将数据的采集、清洗、计算、存储等各个环节封装成组件,以所见即所得方式进行流水线配置。简单易用,功能强大。它具有如下特性: 简单易用…

群晖Docker部署HomeAssistant容器结合内网穿透远程控制家中智能设备

目录 一、下载HomeAssistant镜像 二、内网穿透HomeAssistant,实现异地控制智能家居 三、使用固定域名访问HomeAssistant 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。 点击跳转到网站 Ho…

树低级(C语言版)

一.树基本计算规则 关于树的大部分知识点我们都讲过了,那么如果我给你树的节点,你可以算出叶子节点个数吗? 下面我们总结下一些计算规则: 1.父子计算规则: parent(child-1)/2; leftchildparent*21,rightchildpare…

设计循环队列——oj题622

. 个人主页:晓风飞 专栏:LeetCode刷题|数据结构|Linux 路漫漫其修远兮,吾将上下而求索 文章目录 题目要求:应该支持如下操作:示例:提示: 结构体定义队列的创建基本操作判断队列是否为空&#xf…

python 数据容器

数据容器概念 一个可以存储多个元素的python数据类型 python有的数据容器 list(列表) tuple(元组) str(字符串) set(集合) dct(字典) 列表 python的列表的数据类型可以是不同的 my_list ["1",123,True,[123,"3333",d,False]]for item in my_list:p…

第三部分使用脚手架:vue学习(61-65)

文章目录 61 创建vue脚手架![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f71d4324be0542209e690ab9e886d199.png)62 分析脚手架结构63 render函数64 修改默认配置65 ref 属性 61 创建vue脚手架 写完vue文件,没有脚手架做翻译,浏览器不认识…

数据结构:图详解

图的存储方式 邻接矩阵 首先先创建图,这一个我们可以使用邻接矩阵或者邻接链 表来进行存储,我们要实现的无向图的创建,我们先创建 一个矩阵尺寸为n*n,n为图中的节点个数如图所示 可以看出图中有5个结点,那我们创建…

PostGIS学习教程十七:线性参考

PostGIS学习教程十七:线性参考 线性参考是一种表示要素的方法,这些要素可以通过引用一个基本的线性要素来描述。使用线性参照建模的常见示例包括: 公路资产,这些资产使用公路网络沿线的英里来表示。 道路养护作业,指…

AOP(面向切面编程)基于XML方式配置

概念解释:(理解基本概念方可快速入手) 连接点(joinpoint) 被拦截到的点,因为Spring只支持方法类型的连接点,所以在Spring中连接点指的就是被拦截到的方法。 切入点(pointcut&#x…

主题-----读微信公众号

1.SOA 面向服务的架构(Service-Oriented Architecture,SOA)还没有一个公认的定义。许多组织从不同的角度和不同的侧面对 SOA 进行了描述,较为典型的有以下三个: (1)W3C 的定义:SOA 是…

MySQL-DCL

DCL是数据控制语言,用来管理数据库用户,控制数据库的访问权限。 管理用户:管理哪些用户可以访问哪些数据库 1.查询用户 USE mysql; SELECT * FROM user; 注意: MySQL中用户信息和用户的权限信息都是记录在mysql数据库的user表中的…

D-Link DES-108 交换机

D-Link DES-108 交换机 1. 百兆交换机 8 口References ​ D-Link Corporation is a Taiwanese multinational networking equipment manufacturing corporation headquartered in Taipei, Taiwan. Taiwanese:adj. 台湾的 n. 台湾人 headquarter [hedkwɔ:tə]&#…

深入理解Python中的二分查找与bisect模块

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢…

数据采集:获取有价值信息的关键步骤

在当今数据驱动的时代,数据已成为企业、组织和个人做出明智决策的重要依据。而数据采集作为数据分析和应用的第一步,其重要性不言而喻。本文将探讨数据采集的概念意义、方法工具、面临的挑战和应对策略以及注意事项。 一、数据采集的定义和重要性 &…

HTTP基础知识总结

目录 一、什么是HTTP? 二、与HTTP有关的协议 三、HTTP请求特征 四、HTTP组成格式 五、HTTP标头 1.通用标头 2.实体标头 3.请求标头 4.响应标头 六、HTTP状态码分类 我们在日常测试过程中,也可以通过浏览器F12简单定位是前端问题还是后端问题&a…

css学习之路:sass学习基础篇

SCSS 一、动态的样式语言 让CSS有变量的概念css有很多的缺点 语法不够强大,没有变量和合理的样式复用机制,导致难以维护,我们就可以使用动态样式语言,赋予CSS新的特性。常见的动态样式语言 scss/sass(scss兼容sass&am…

厚积薄发11年,鸿蒙究竟有多可怕

12月20日中国工程院等权威单位发布**《2023年全球十大工程成就》。本次发布的2023全球十大工程成就包括“鸿蒙操作系统”在内。入围的“全球十大工程成就”,主要指过去五年由世界各国工程科技工作者合作或单独完成且实践验证有效的,并且已经产生全球影响…