MySQL运维3-分库分表策略

这篇具有很好参考价值的文章主要介绍了MySQL运维3-分库分表策略。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、介绍

  单库瓶颈:如果在项目中使用的都是单MySQL服务器,则会随着互联网及移动互联网的发展,应用系统的数据量也是成指数式增长,若采用单数据库进行存储,存在一下性能瓶颈:

  1. IO瓶颈:热点数据太多,数据库缓存不足,产生大量磁盘IO,效率低下,请求数据太多,带宽不够,网络IO瓶颈。
  2. CPU瓶颈:排序、分组、连接查询、聚合统计等SQL会耗费大量的CPU资源,请求数太多,CPU出现瓶颈。

  分库分表:就是将数据分散存储,是将单一数据库/表的数据量变小来缓解单一数据库的性能问题,从而达到提升数据库性能的目的。

  MySQL运维3-分库分表策略

二、拆分策略

  MySQL运维3-分库分表策略

  2.1 垂直分库

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

    • 每个库的表结构都不一样
    • 每个表的数据也不一样
    • 所有库的并集是全量数据

  MySQL运维3-分库分表策略

  2.2 垂直分表

    特点:以字段为依据,根据字段属性将不同字段分到不同表中 。

    • 每个表的结构都不一样
    • 每个表的数据也不一样,一般通过一列(主键/外键)管理
    • 所有表的并集是全量数据

    MySQL运维3-分库分表策略

  2.3 水平分库 

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

    • 每个库的表结构一样。
    • 每个库的数据都不一样
    • 所有库的并集是全量数据

    MySQL运维3-分库分表策略

  2.4 水平分表

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

    • 每个表的结构都一样
    • 每个表的数据都不一样
    • 所有表的并集是全量数据

  2.5 组合策略  

    在实际应用中,可以同时采用分库和分表的策略,根据业务需求和系统负载情况来选择合适的分库分表策略。

三、分库分别键

  3.1 业务键

    根据业务需求,选择具有业务含义的键作为分库分表的依据,例如,按照用户ID分表

  3.2 时间键

    对于大部分应用来说,按时间进行分表是一个常见的选择,可以更容易地管理历史数据

  3.3 哈希建

    使用哈希函数将数据均匀地分散到不同的库或表中,以防止热点数据集中存储

  3.4 范围键

    按照数据范围进行分表,适用于数据按照某一范围规律增长的情况

 文章来源地址https://www.toymoban.com/news/detail-750802.html

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

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

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

相关文章

  • 15天学习MySQL计划(运维篇)分库分表-监控-第十四天

    1.介绍 1.问题分析 ​ 随着互联网及移动互联网的发展,应用系统的数据量也是成指数式增加,若采用但数据进行数据存储,存在以下性能瓶颈: IO瓶颈:热点数据太多,数据库缓存不足,产生大量磁盘IO,效率较低。请求数据太多,带宽不够,网络IO瓶颈。 CPU瓶颈:排序,分

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

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

    2024年02月02日
    浏览(51)
  • 运维高级--shell脚本完成分库分表

         随着系统的运行,存储的数据量会越来越大,系统的访问的压力也会随之增大,如果一个库中的表数据超过了一定的数量,比如说MySQL中的表数据达到千万级别,就需要考虑进行分库分表;      其次随着表数据的不断增大,会发现查询也随着变得缓慢,如果添加索

    2024年02月15日
    浏览(46)
  • 运维——编写脚本,使用mysqldump实现分库分表备份。

     编写脚本,使用mysqldump实现分库分表备份。 需要将 和 替换为您的 MySQL 用户名和密码,并将 替换为您希望保存备份文件的路径。 your_username your_password \\\"/path/to/backup\\\" 此脚本将遍历所有数据库和表,并使用 mysqldump 工具将每个表的数据导出到单独的备份文件中。备份文件的命

    2024年02月15日
    浏览(53)
  • 分库分表介绍以及shardingjdbc实现分库分表

    分库分表概念 一、什么是分库分表 分库分表是在海量数据下,由于单库、表数据量过大,导致数据库性能持续下降的问题,演变出的技术方案。 分库分表是由分库和分表这两个独立概念组成的,只不过通常分库与分表的操作会同时进行,以至于我们习惯性的将它们合在一起

    2023年04月13日
    浏览(36)
  • shardingsphere5.1.1分表分库yaml配置 自定义策略

    通过阅读官方稳定给出示例 https://shardingsphere.apache.org/document 在该配置中,有两个数据源ds0和ds1,分别对应两个数据库db0和db1。在ShardingSphere中,通过配置actual-data-nodes属性来指定数据分片的具体情况。在这里,我们指定了user表在ds0和ds1这两个数据源中的分片情况。其中,ac

    2024年02月09日
    浏览(40)
  • 【分库分表】基于mysql+shardingSphere的分库分表技术

    目录 1.什么是分库分表 2.分片方法 3.测试数据 4.shardingSphere 4.1.介绍 4.2.sharding jdbc 4.3.sharding proxy 4.4.两者之间的对比 5.留个尾巴 分库分表是一种场景解决方案,它的出现是为了解决一些场景问题的,哪些场景喃? 单表过大的话,读请求进来,查数据需要的时间会过长 读请求过

    2024年03月12日
    浏览(48)
  • 掌握MySQL分库分表(一)数据库性能优化思路、分库分表优缺点

    不能⼀上来就说分库分表! 根据实际情况分析,两个角度思考:不分库分表、分库分表 软优化 数据库参数调优 分析慢查询SQL语句,分析执行计划,进行sql改写和程序改写 优化数据库索引结构 优化数据表结构优化 引入NOSQL和程序架构调整 硬优化 提升系统硬件(更快的IO、更

    2023年04月19日
    浏览(57)
  • Mysql 分库分表 Mycat

    https://www.bilibili.com/video/BV1Kr4y1i7ru?p=163spm_id_from=pageDrivervd_source=ff8b7f852278821525f11666b36f180a 1.1 热点数据多 - 缓冲区不足 -内存不足 1.2 数据多 - 磁盘不足 1.3 请求数据量多 - 带宽不足 1.4 排序/分组/连续查询/集合统计 太多 - cpu 不足 2.1.1 垂直分库 - 表业务类型拆分 2.1.2 垂直分表 -

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

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

    2024年02月16日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包