MySQL-分库分表详解(一)

♥️作者:小刘在C站

♥️个人主页: 小刘主页 

♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生!

♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技术

♥️小刘私信可以随便问,只要会绝不吝啬,感谢CSDN让你我相遇!

目录

MySQL

1 介绍

1.1 问题分析

1.2 拆分策略

1.3 垂直拆分

2. 垂直分表

1.4 水平拆分

特点:

特点:

1.5 实现技术

2 MyCat概述

2.1 介绍

优势:      

2.2 下载

 2.3 安装


MySQL

MySQL是一个关系型数据库管理系统由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。

1 介绍

1.1 问题分析

随着互联网及移动互联网的发展,应用系统的数据量也是成指数式增长,若采用单数据库进行数据存储,存在以下性能瓶颈:

1. IO瓶颈:热点数据太多,数据库缓存不足,产生大量磁盘IO,效率较低。 请求数据太多,带宽

不够,网络IO瓶颈。

2. CPU瓶颈:排序、分组、连接查询、聚合统计等SQL会耗费大量的CPU资源,请求数太多,CPU出现瓶颈。

为了解决上述问题,我们需要对数据库进行分库分表处理。

分库分表的中心思想都是将数据分散存储,使得单一数据库/表的数据量变小来缓解单一数据库的性能问题,从而达到提升数据库性能的目的。

1.2 拆分策略

分库分表的形式,主要是两种:垂直拆分和水平拆分。而拆分的粒度,一般又分为分库和分表,所以组成的拆分策略最终如下:

1.3 垂直拆分

1. 垂直分库

 垂直分库:以表为依据,根据业务将不同表拆分到不同库中。

特点:

每个库的表结构都不一样。

每个库的数据也不一样。

所有库的并集是全量数据。


2. 垂直分表

 垂直分表:以字段为依据,根据字段属性将不同字段拆分到不同表中。

特点:

每个表的结构都不一样。

每个表的数据也不一样,一般通过一列(主键/外键)关联。

所有表的并集是全量数据。


1.4 水平拆分

1. 水平分库

 水平分库:以字段为依据,按照一定策略,将一个库的数据拆分到多个库中。

特点:

每个库的表结构都一样。

每个库的数据都不一样。

所有库的并集是全量数据。

2. 水平分表

 水平分表:以字段为依据,按照一定策略,将一个表的数据拆分到多个表中。

特点:

每个表的表结构都一样。

每个表的数据都不一样。

所有表的并集是全量数据。

在业务系统中,为了缓解磁盘IO及CPU的性能瓶颈,到底是垂直拆分,还是水平拆分;具体是分

库,还是分表,都需要根据具体的业务需求具体分析。

1.5 实现技术

shardingJDBC:基于AOP原理,在应用程序中对本地执行的SQL进行拦截,解析、改写、路由处

理。需要自行编码配置实现,只支持java语言,性能较高。

MyCat:数据库分库分表中间件,不用调整代码即可实现分库分表,支持多种语言,性能不及前

者。

 本次课程,我们选择了是MyCat数据库中间件,通过MyCat中间件来完成分库分表操作。

2 MyCat概述

2.1 介绍

Mycat是开源的、活跃的、基于Java语言编写的MySQL数据库中间件。可以像使用mysql一样来使用mycat,对于开发人员来说根本感觉不到mycat的存在。

开发人员只需要连接MyCat即可,而具体底层用到几台数据库,每一台数据库服务器里面存储了什么数据,都无需关心。 具体的分库分表的策略,只需要在MyCat中配置即可。

优势:      

性能可靠稳定

强大的技术团队

体系完善

社区活跃


2.2 下载

下载地址:这里这里

 2.3 安装

Mycat是采用java语言开发的开源的数据库中间件,支持Windows和Linux运行环境,下面介绍

MyCat的Linux中的环境搭建。我们需要在准备好的服务器中安装如下软件。

MySQL

JDK

Mycat

♥️关注,就是我创作的动力

♥️点赞,就是对我最大的认可

♥️这里是小刘,励志用心做好每一篇文章,谢谢大家

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】24王道考研笔记——串

四、串 串的定义 串(字符串)是由零个或多个字符组成的有限序列。 子串:串中任意个连续的字符组成的子序列主串:包含子串的串字符在主串中的位置:字符在串中的序号子串在主串中的位置:子串的第一个字符在…

docker 里面各种 command not found 总结

一、ip:command not found 执行命令: apt-get update & apt-get install -y iproute2 二、yum:command not found 执行命令: apt-get update & apt-get install -y yum 三、ping:command not found 执行命…

一、简易搭建本地CAS服务端

CAS服务端war包下载 https://repo1.maven.org/maven2/org/apereo/cas/cas-server-webapp-tomcat/5.3.14/ 可使用迅雷下载cas-server-webapp-tomcat-5.3.14.war ,速度很快 将wab包放到本地tomcat的webapps下D:\tomcat\apache-tomcat-8.5.63\webapps\cas\WEB-INF\clas…

解决Anaconda第三方库下载慢

1.打开Anconda Prompt,进入后台 2.执行命令第一个是添加一个清华镜像,第二个设置在 conda 显示通道的 URL。 (1)conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ (2&#xff0…

RocketMQ5.0消息存储<四>_刷盘机制

RocketMQ5.0消息存储<四>_刷盘机制 一、刷盘概览 RocketMQ存储与读写是基于JDK NIO的内存映射机制(MappedByteBuffer),消息存储时首先将消息追加到文件内存映射(commit操作),再根据配置的刷盘策略在不同时间进行刷写到磁盘(flush操作)。同步刷盘,消息提交到文件内…

【每天40分钟,我们一起用50天刷完 (剑指Offer)】第二十二天 22/50

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

C#核心知识回顾——12.lambda表达式、List排序、协变和逆变

1.Lambda表达式 可以将lambad表达式理解为匿名函数的简写 它除了写法不同外,使用上和匿名函数一模一样 都是和委托或者事件配合使用的 //匿名函数 //delegate(参数列表) //{ //} //lambda表达式 //(参数列表) > //{ //函数体 //…

【Maven】类或者包提示找不到,报红

背景 使用IDEA,类或者包提示找不到,报红 解决方法 1. maven reload 2. 检查profiles是否对 3. 不要选中offline模式 4. 检查本地仓库位置 5. 清掉idea缓存 6. 到本地maven仓库删掉出错的包然后重新maven reload 7. update本地仓库 8. 排查是不是别人没…

Seata 分布式事务的中间件Seata设计和实现方案

文章目录 分布式事务的中间件SeataSeata AT 模式-默认模式前提整体机制写隔离读隔离 Seata XA 模式前提整体机制工作机制 Seata TCC 模式Seata Saga 模式概述缺点: Saga的实现外传 分布式事务的中间件Seata Seata 是一款开源的分布式事务解决方案,致力于…

Java设计模式之创建型-原型模式(UML类图+案例分析)

目录 一、基础概念 二、UML类图 三、角色设计 四、案例分析 1、通用实现(浅克隆) 2、深克隆 五、总结 一、基础概念 原型模式通过复制已有对象作为原型,通过复制该原型来返回一个新对象,而不是新建对象,说白了…

重磅IntelliJ IDEA 2023.2 新版本即将发布,拥抱 AI

IntelliJ IDEA 近期连续发布多个EAP版本,官方在对用户体验不断优化的同时,也新增了一些不错的功能,尤其是人工智能助手补充,AI Assistant,相信在后续IDEA使用中,会对开发者工作效率带来不错的提升。 以下是…

一个Transformer在尺度上适合多模态扩散的所有分布

文章目录 One Transformer Fits All Distributions in Multi-Modal Diffusion at Scale摘要本文方法实验结果 One Transformer Fits All Distributions in Multi-Modal Diffusion at Scale 摘要 本文提出了一个统一的扩散框架(UniDiffuser)来拟合一个模型中与一组多模态数据相…