MySQL-分库分表详解(一)

这篇具有很好参考价值的文章主要介绍了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 问题分析

MySQL-分库分表详解(一),MySQL入门到实战,数据库,mysql,运维

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

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

不够,网络IO瓶颈。

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

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

MySQL-分库分表详解(一),MySQL入门到实战,数据库,mysql,运维

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

1.2 拆分策略

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

MySQL-分库分表详解(一),MySQL入门到实战,数据库,mysql,运维

1.3 垂直拆分

1. 垂直分库

MySQL-分库分表详解(一),MySQL入门到实战,数据库,mysql,运维

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

特点:

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

每个库的数据也不一样。

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


2. 垂直分表

MySQL-分库分表详解(一),MySQL入门到实战,数据库,mysql,运维

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

特点:

每个表的结构都不一样。

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

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


1.4 水平拆分

1. 水平分库

MySQL-分库分表详解(一),MySQL入门到实战,数据库,mysql,运维

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

特点:

每个库的表结构都一样。

每个库的数据都不一样。

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

2. 水平分表

MySQL-分库分表详解(一),MySQL入门到实战,数据库,mysql,运维

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

特点:

每个表的表结构都一样。

每个表的数据都不一样。

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

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

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

1.5 实现技术

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

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

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

者。

MySQL-分库分表详解(一),MySQL入门到实战,数据库,mysql,运维

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

2 MyCat概述

2.1 介绍

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

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

MySQL-分库分表详解(一),MySQL入门到实战,数据库,mysql,运维

优势:      

性能可靠稳定

强大的技术团队

体系完善

社区活跃


2.2 下载

下载地址:这里这里

MySQL-分库分表详解(一),MySQL入门到实战,数据库,mysql,运维

 2.3 安装

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

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

MySQL

JDK

Mycat

MySQL-分库分表详解(一),MySQL入门到实战,数据库,mysql,运维

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

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

♥️这里是小刘,励志用心做好每一篇文章,谢谢大家文章来源地址https://www.toymoban.com/news/detail-528236.html

到了这里,关于MySQL-分库分表详解(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据库分库分表思路

    一. 数据切分 关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。此时就要考虑对其进行切分了,切分的目的就在于减少数据

    2024年02月09日
    浏览(49)
  • 数据库-分库分表初探

    数据量在百万以里,可以通过Tina集从库、优化索引等提升性能 数据量超过千万,为了减少数据库的负担,提升数据库响应速度,缩短查询时间,需要进行分库分表 推荐:采用垂直分库水平分表 总结:分库要解决的是硬件资源的问题,不管是拆分字段,还是拆分数据,都是要

    2024年01月25日
    浏览(44)
  • 浅谈数据库分库分表

    本文主要介绍数据库分库分表相关的基础知识,包括分库分表是什么,为什么要分库分表,以及有哪些解决方案。 数据库分库分表,用英文表示是 \\\"database sharding\\\" or \\\"database partitioning\\\" 。 分库分表是指将一个大型数据库按照一定的规则拆分成多个小型数据库,每个小型数据库

    2024年02月15日
    浏览(46)
  • shell脚本:数据库的分库分表

     

    2024年02月15日
    浏览(43)
  • 架构篇15:高性能数据库集群-分库分表

    上篇我们讲了“读写分离”,读写分离分散了数据库读写操作的压力,但没有分散存储压力,当数据量达到千万甚至上亿条的时候,单台数据库服务器的存储能力会成为系统的瓶颈,主要体现在这几个方面: 数据量太大,读写的性能会下降,即使有索引,索引也会变得很大,

    2024年01月24日
    浏览(47)
  • 千万级并发架构下,如何进行关系型数据库的分库分表

    最近项目上线后由于用户量的剧增,导致数据库的数据量剧增,随之而来的就是海量数据存储的问题,针对最近解决数据的优化过程,谈谈sql语句的优化以及数据库分库分表的方案。 建议大家先阅读一下数据库的优化方案 《数据库大数据量的优化方案》,里面从 1.优化现有数

    2024年02月16日
    浏览(54)
  • 分库分表已成为过去式,使用分布式数据库才是未来

    转载至我的博客 https://www.infrastack.cn ,公众号:架构成长指南 当我们使用 Mysql数据库到达一定量级以后,性能就会逐步下降,而解决此类问题,常用的手段就是引入数据库中间件进行分库分表处理,比如使用 Mycat 、 ShadingShpere 、 tddl ,但是这种都是过去式了,现在使用分布

    2024年02月19日
    浏览(49)
  • Jmeter(七) - 从入门到精通 - 建立数据库测试计划实战<MySQL数据库>(详解教程)

    1.简介   在实际工作中,我们经常会听到数据库的性能和稳定性等等,这些有时候也需要测试工程师去评估和测试,上一篇文章主要介绍了jmeter连接和创建数据库测试计划的过程,在文中通过示例和代码非常详细地介绍给大家,希望对各位小伙伴和童鞋们的学习或者工作具有一

    2024年02月13日
    浏览(58)
  • MySQL 数据存储和优化------MySQL索引原理和优化 ---- (架构---索引---事务---锁---集群---性能---分库分表---实战---运维)持续更新

    Mysql架构体系全系列文章主目录(进不去说明还没写完) https://blog.csdn.net/grd_java/article/details/123033016 本文只是整个系列笔记的第二章:MySQL索引原理和优化,只解释索引相关概念。 索引可以提高查询效率,影响where查询和order by排序,它可以从多方面进行分类,但是实际创建时

    2024年02月02日
    浏览(54)
  • MySQL-分库分表详解(七)

    ♥️ 作者:小刘在C站 ♥️ 个人主页:  小刘主页  ♥️ 努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️ 学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏: 云计算技术 ♥️小刘私信可以随便问,只要会绝不吝啬,感谢CSD

    2024年02月16日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包