分片概念:

分片(Sharding)就是用来确定数据在多台存储设备上分布的技术。Shard这个词的意思是“碎片”,如 果将一个数据库当作一块大玻璃,将这块玻璃打碎,那么每一小块都称为数据库的碎片(Database Sharding)。将一个数据库打碎成多个的过程就叫做分片,分片是属于横向扩展方案。

分片与分表的区别:

分片:表示分配过程,是一个逻辑上概念,表示如何实现。

分库分表:表示分配结果,是一个物理上概念,表示最终实现的结果


分片策略:

  • 基于范围分片:

根据特定的字段进行拆分,比如ID0-100到 Cluster A节点中,100-200的到Cluster B节点中...

优点:新的数据可以落在新的存储节点上,如果集群扩容,数据无需迁移。

缺点:热点数据分部不均匀则会导致机器负荷程度的不均匀,会浪费资源也会导致部分机器过载。

  • 哈希取模分片(离散分片)

根据Hash算法取模对应一些机器编号进行入库。

优点:数据分配比较均匀,不容易出现冷热不均,负荷不均的情况。

缺点:比较均匀,但是在扩容时会产生大量的数据迁移(因为Hash算法取模要整体重新计算),比如从n台设备扩容到n+1,绝大部分数据需要重新分配和 迁移。

  • 一致性哈希分片

相比较传统的Hash算法,通过环的方式在添加节点(扩容)或者删除节点时,只对增加节点的单个环上进行添加,则无须进行大面积的数据迁移。


在数据库容量有限的情况下,分片,分库,分表也会达到瓶颈,而这时候的扩容方式则需要去横向增加节点扩容处理。

一,初期方案(停机扩容)

停机扩容,关闭服务不符合现阶段高可用的价值观,并且如果有问题没有及时测试出来启动了服务,运行后发现问题,数据会丢失一部分,难以回滚。该方案虽然简单但只适合小型网站或者对高可用要求不高的程序,或是测试上线阶段。

二,平滑扩容(上线运行之后)

平滑扩容也称之为成倍扩容,例如从两个节点扩到四个节点,通过双主配置双写进行数据同步。

双主双写之后进行同步,在可容忍的延迟下,保证数据的同步完成。(因为高可用要求高的程序下,随时都会存在写的数据录入,所以会有延迟情况)

同步完成后,则取消掉双主同步,重启即可。

平滑扩容虽然做到了高可用的要求,但是配置程序很复杂、配置双主同步、双主双写、检测数据同步等,且后期数据库扩容,因为是成倍扩容,代价会不断变大。


附: 参考资料《MySQL技术内幕 InnoDB存储引擎》

Mysql 分片,大数据量时扩容方案相关推荐

  1. mysql source导入大数据量时效率提升的方法

    在对mysql数据库进行大数据量导入时,我通常是选择source命令进行导入,这样能比较短的时间内导入.但是,如果数据量大到一定量级时,即使是用source命令,效率也并不高.比如此次要导入的数据库文 ...

  2. MySql下大数据量级别(1000万+)优化查询和操作方法

    MySql下大数据量级别(1000万+)优化查询和操作方法 一.[原则一]: insert into tb (...) values(...),(...)...; 要比 insert into tb ...

  3. 大数据量时Mysql的优化要点

    原文章 http://www.open-open.com/lib/view/open1430901016179.html 如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB.对数据的 ...

  4. 大数据量时Mysql的优化要点[转]

    转自:http://www.open-open.com/lib/view/open1430901016179.html 如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB.对数据的各 ...

  5. EasyExcel 低内存导出大数据量的Excel方案探索 50万行 50列 (附:实现代码)

    文章目录 1.前言 2.准备工作 3.导出测试 3.1.单次查询.全量导出 3.2. 多次查询,多个文件,单次写入 3.3.多次查询,多个文件,多次写入 3.4.多线程导出探索 3.5.文件打包成ZI ...

  6. 大数据量时使用xloadtree2做分级加载的问题讨论

    我遇到一个问题,是在大数据量分层加载的时候遇到,感到有些莫明其妙,敬请大家讨论! -root (中国) |---1 (北京) |---2 (河北) | |-----2.1 (唐山) | |-----2 ...

  7. Mysql优化-大数据量下的分页策略

    一.前言 通常,我们分页时怎么实现呢? 1 SELECT * FROM table ORDER BY id LIMIT 1000, 10; 但是,数据量猛增以后呢? 1 SELECT * FROM t ...

  8. Android, BaseAdapter 处理大数据量时的优化

    Android优化 最常见的就是ListView, Gallery, GridView, ViewPager 的大数据优化  图片优化  访问网络的优化 优化的原则: 数据延迟加载  分批加载  本地 ...

  9. sqlServer 数据库移库(遇到大数据量时)

    方法一:脚本法 如果你的数据库每天都有更新,而且今天改动量不大,可以将你所有的改动弄成脚本,放到本地数据库执行即可.就行一般公司开发写数据库发布脚本一样. 方法二:备份与还原法 在服务器的数据库中选中 ...

  10. MySQL数据库如何解决大数据量存储问题

    FROM http://blog.csdn.net/likika2012/article/details/38816037 各位高手您们好,我最近接手公司里一个比较棘手的问题,关于如何利用MySQL存 ...

最新文章

  1. tensorflow的mnist改写成pytorch
  2. 走钢索的人---走出软件作坊:三五个人十来条枪 如何成为开发正规军(十七)...
  3. JS将数字转换为中文
  4. java sax解析复杂xml_SAX解析复杂的xml字符串
  5. 【Vue2.0】—组件(十一)
  6. 腾讯拟全资收购搜狗;英特尔人事大变动,首席工程官将离职;TensorFlow 2.3.0 正式发布 | 极客头条
  7. 编写高可用Eureka Server
  8. java 多项式拟合最多的项数_Matlab polyfit 详解 | 方程组求解的稳定性 | 条件数
  9. Windows勒索病毒'Wannacry'修复补丁下载,救命必看!
  10. java object 转 double_Java 类型转换以及Object转成其他类型
  11. 转行学IT为什么一定要趁早?
  12. Gan 和 StyleGAN 架构
  13. 梦三国解析服务器spl文件头失败解决,梦三国手游|深度解析“伪法师”张角:“不容忽视的战场杀器”...
  14. git原理学习记录:从基本指令到背后原理,实现一个简单的git
  15. 三部门禁止对新能源车限购 专家:京沪情况复杂,政策仍不明朗
  16. 提高教育效率:教师如何制作智能学生成绩在线查询系统?
  17. 毕业有感-抉择的重要性
  18. 电磁兼容设计中无法忽视的高频效应
  19. Mybatis和MybatisPlus3.4的使用
  20. MFC_改变窗口大小,随着鼠标的拖动改变

热门文章

  1. 约瑟夫问题 c语言数组,约瑟夫问题的数组实现
  2. 密码编码学与网络安全(第五版)课后习题-CH03
  3. 数据结构导论【五】之 图
  4. 发邮件向论文作者卑微求代码模板
  5. 【联想拯救者R7000】蓝牙和wifi图标不显示问题(已解决)
  6. linux 关闭后台程序
  7. Google Code注册方法详解 Google Code网盘申请方法
  8. 公告:软件测试就业课涨价调整暨教学服务升级通知
  9. 在Mac上保存网页上的图片
  10. Chrome 浏览器插件之监控网页地址