mysql分库分表分片分区及常见问题

news2024/11/18 13:37:48

1.前言

MySQL单库数据量在5000万以内性能比较好,超过阈值后性能会随着数据量的增大而变弱。MySQL单表的数据量是500w-1000w之间性能比较好,超过1000w性能也会下降。

2.mysql分布式

  1. 分库

分库一般有两种目的:将库中不同表进行拆分,将库中某个表进行拆分,目标就是降低单库的数据量,从而提高io能力和并发能力。

将不同表拆分即将不同的大表移动到其他库中,缓解单库压力,通过多数据源即可进行切换查询,成本最低。

将相同表进行拆分,需要根据某种规则进行拆分,比如按照时间、按照某个主键,这种方式既进行了分表也进行了分库,属于分片的范畴。

  1. 分表

分表分为垂直划分和水平划分。

垂直划分即将不同的字段进行拆分。比如一个学生表中,含有年龄、班级、成绩等属性。我们可以将其拆分为学生、年龄表和学生、成绩表,防止某个属性过大,造成单表的数据量不大,但占用空间极大,造成io缓慢。

水平划分即可通过主键区间划分,或者主键取模或者位运算。这些方式均是将数据水平拆分,每个表的数据结构都是一样的,将数据打散到多个表中,降低单表的数据量,提高能力。

  1. 分区

mysql提供的一种能力。首先 mysql的文件分为三个,具体名字不做阐述,分别为存储表结构、存储数据文件、存储索引数据。分区时,可按照list、hash、区间等多个方式进行分区,将这存储数据的两个文件打散,根据以上的规则分为多个文件。实际仍处于同一个库同一个表中,只是文件切割开,不同的分区文件可以存储咋不同的磁盘上,不允许跨DB。

  1. 分片

分片是将表中数据按照某种规则放到多个库中,既分表又分库,就相当于原先一个库中的一个表,现在放到了好多个表里面,然后这好多个表又分散到了好多个库中。它可以提高 MySQL 数据库的读写性能,特别是在读多写少的情况下。

image.png

以上是数据库方面的性能增强,总结以上为,单库单表存在性能瓶颈,我们首先突破单表,接着突破单库,突破单机器,将磁盘更换为ssd,增强读写性能。数据库的性能一部分在于自身的局限性,一部分在于硬件的性能。

日常开发中,我们也需要对数据库进行监控,查看cpu数值、硬盘使用率等,监控慢sql,监控数据库连接数。

总结历史问题如下:

1.之前出现过多次,因慢sql导致数据库连接池被打满导致后续无连接问题。

2.也出现过,因多个系统同时连接一个库,导致连接数暴增。

3.亦出现过,因调整服务读写分离,使用不同数据源时,未配置新插件的数据库连接池大小,导致连接数过小,请求数一多,就将数据库链接打满,导致无法响应了。所以设置好服务的数据库连接池数也是重中之重。

4.事务开启过大,导致死锁、回滚时间长、易发生异常回滚、数据库连接池占满、接口性能差

5.通过非索引字段进行更新操作,导致间隙锁的发生,最终死锁。

6.事务中,开启分布式锁,事务结束前,解锁,导致并发问题。

7.查询sql中未对空值进行校验,导致查询全表数据,直接oom

8.查询sql未命中索引,导致查询语句过慢,连接池被打满。

总结以上,慢sql致命。

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

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

相关文章

英国访问学者T5签证所需相关材料

英国访问学者T5签证所需相关材料,下面就随知识人网小编一起来看一看。 1、完整填写的申请表格并亲笔签名。 2、近期护照规格白色背景彩色照片并贴在签证表格首页右上角。 3、签证后至少剩余6个月有效期的护照及申请人所持有的旧护照。 4、邀请信原件。 邀请信主要内容包括&…

基于SSM框架便利店管理系统(进销存管理系统)(java+spring+springmvc+mybatis+maven+mysql+html)

一、项目简介 本项目是一套基于SSM框架便利店管理系统(进销存管理系统),主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、项目文档、数据库脚本、软件工具等,该项目附带全部源码可作为毕设使用。…

BT8918D---huart模块分析

1 huart模块 huart模块从名字可以看出,用于串口UART通讯,H的含义,目前还不知道,待了解。该模块源码未公开,已经编译成库文件,供开发者使用。 2 huart模块分析 2.1 特性 默认特性: Baud rat…

R语言处理数据——janitor包的介绍及使用

janitor功能介绍 janitor可以检查并清理脏数据,适用于R语言用户。主要功能如下: 1、完美格式化数据框的列名; 2、创建并格式化1-3个变量的频率表,可以看作是一个改进的table()函数; 3、提供用于清理和检查数据框的其他…

CCS通过dat文件导入数据计算出结果再导出数据

之前有很多博主讲过在matlab当中导出数据,到DSP里面进行计算,然后再将数据导出到matlab当中进行使用。 以前使用过matlab当中的dat数据,大家可以看一下区别: fid fopen(A.dat,wt);%将所得的数据存在A.dat当中 fprintf(fid,%g\n…

Hadoop配置

静态IP vi /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTOstatic ONBOOTyes IPADDR192.168.10.11 NETMASK255.255.255.0 GATEWAY192.168.138.2 DNS1114.114.114.114 DNS28.8.8.8 重启网络服务 service network restart 修改主机名 hostnamectl set-hostname ‘hadoop…

【Vue】学习笔记03-数据绑定

学习笔记03-数据绑定v-bind 单向绑定v-model 双向绑定错误案例&#xff1a;简写总结v-bind 单向绑定 <!--准备好一个容器--><div id"root">单向数据绑定&#xff1a;<input type"text" v-bind:value"name"></div><…

C++ 实现 matlab 的 buttap 函数

文章目录1. matlab buttap 函数的功能2. matlab buttap 函数的使用方法3. C实现4. 测试1. matlab buttap 函数的功能 输入模拟低通巴特沃斯滤波器的最低阶数&#xff0c;输出对应模拟低通巴特沃斯滤波器的传递函数的零点、极点、增益 其中&#xff0c;零点都为0&#xff0c;增…

详解 OSPF 协议

今天海翎光电的小编和大家聊一聊 OSPF 协议。 OSPF 是一种基于 SPF 算法的链路状态路由协议。 上图是在一个 OSPF 区域里面添入一台新的路由器的时候&#xff0c;OSPF 协议的工作过程&#xff0c;如果你能非常详细的叙述出这张图的话&#xff0c;基本上 OSPF 协议的工作过程你…

Hadoop 开启 histotryserver

Hadoop 开启 histotryserver Hadoop自带了一个历史服务&#xff0c;可以通过历史服务在web端查看已经运行完的Mapreduce作业记录&#xff0c; 默认情况下&#xff0c;Hadoop历史服务是没有启动的&#xff0c;需要自行启动。 启动后&#xff0c;在下图中点击history可跳转至历史…

论文阅读 —— Graph Self-Supervised Learning: A Survey (自监督图学习综述)

论文链接&#xff1a;https://arxiv.org/pdf/2103.00111.pdf 目录 摘要 1 引言 2 定义和符号&#xff08;notation&#xff09; 2.1 术语定义 2.2 符号 3 框架和分类 3.1 图自监督学习的统一框架和数学公式 3.2 图自监督学习的分类 3.3自我监督训练计划的分类 3.4 下游…

【通过Cpython3.9源码看看字典到底是咋回事】

字典结构 /* The ma_values pointer is NULL for a combined table* or points to an array of PyObject* for a split table*/ typedef struct {PyObject_HEAD/* Number of items in the dictionary */Py_ssize_t ma_used;/* Dictionary version: globally unique, value cha…

更灵敏、更精准、更智能,机器人避障也能“随心所欲”

对于穿梭在人群中的机器人们而言&#xff0c;避障的重要性不言而喻。 随着机器人应用越来越广泛&#xff0c;机器人的作业场景的复杂度在显著增加&#xff0c;与人类的接触也越加密集&#xff0c;这对机器人的避障功能提出了新要求&#xff0c;不仅要更加精准灵敏&#xff0c;还…

js对象赋值

js对象赋值1. 含有相同的键进行赋值2. 复制对象&#xff08;遍历赋值&#xff09;3. 复制对象&#xff08;直接赋值&#xff09;4. es6的Object.assign()方法拷贝对象 &#xff08;深拷贝&#xff0c;但没完全深&#xff09;5. JSON.parse(JSON.stringify(obj))7. 总结&#xf…

深度学习 - 39. EGES 与推荐系统用户冷启动

目录 一.引言 二.EGES 算法演进 1.淘宝推荐系统简介 2.BGE、GES、EGES 简介 2.1 用户行为序列构建 2.2 BGE / Base Graph Embedding 2.3 GES / Graph Embedding with Side Information 2.4 EGES / Enhanced Graph Embedding with Side Information 三.模型试验 1.离…

TryHackMe-Ra 2(Windows渗透测试)

Ra 2 WindCorp最近发生了安全漏洞。从那以后&#xff0c;他们加强了基础设施&#xff0c;从错误中吸取教训。但也许还不够&#xff1f;您已经设法进入了他们的本地网络… 端口扫描 循例 nmap 域名跟Ra前部基本一样, 多了个selfservice SMB枚举 smbmap enum4linux也没什么信…

CLIP:语言-图像表示之间的桥梁

最近GPT4的火爆覆盖了一个新闻&#xff1a;midjourney v5发布&#xff0c;DALLE2&#xff0c;midjourney都可以从文本中生成图像&#xff0c;这种模型要求人工智能同时理解语言和图像数据。 传统的基于人工智能的模型很难同时理解语言和图像。因为自然语言处理和计算机视觉一直…

每日一练——Day 13

前言&#xff1a; 小亭子正在努力的学习编程&#xff0c;接下来将开启编程题的练习~~ 分享的文章都是学习的笔记和感悟&#xff0c;如有不妥之处希望大佬们批评指正~~ 同时如果本文对你有帮助的话&#xff0c;烦请点赞关注支持一波, 感激不尽~~ 第一题 题目描述&#xff1a; 刷…

一篇文章搞懂Docker、DockerCompose

文章目录1、初识Docker1.1、项目部署的问题1.2、Docker如何解决依赖的兼容问题的&#xff1f;1.3.Docker解决操作系统环境差异1.4、Docker如何解决不同系统环境的问题&#xff1f;1.5、小总结2、Docker 和虚拟机的区别3、Docker架构3.1、镜像和容器3.2、DockerHub3.3、Docker架…

2023年最强手机远程控制横测:ToDesk、向日葵、Airdroid三款APP免Root版本

前言 随着远程办公和远程协作的日益普及&#xff0c;跨设备、系统互通的远程控制软件已经成为职场人士不可或缺的工具之一。在国内&#xff0c;向日葵和ToDesk是最著名的远程控制软件&#xff1b;而在国外&#xff0c;则有微软远程桌面、AirDroid、TeamViewer、AnyDesk、Parse…