当前位置:首页 > 数据库 > MySQL分库分表-理论

MySQL分库分表-理论

2022年11月07日 20:11:00数据库10

分库分表的几种方式

把一个实例中的多个数据库拆分到不同的实例

把一个库中的表分离到不同的数据库中

数据库分片前的准备

在数据库并发和负载没有达到限制时,不推荐水平拆分

对一个库中的相关表进行水平拆分到不同的实例的数据库中

选择分区键

  • 分区键要能尽量避免跨分片查询的发生
  • 分区键要能尽量使用各个分片中的数据平均

如何存储无需分片的表

  • 每个分片中存储一份相同的数据
  • 使用额外的节点统一存储

如何在节点上部署分片

  • 每个分片使用单一数据库,并且数据库名也相同
  • 将多个分片表存储在一个数据库中,并在表名上加入分片号后缀
  • 在一个节点中部署多个数据库,每个数据库包含一个分片

如何分配分片中的数据

  • 按安分区键的Hash值取模来分配分片数据
  • 按分区键的范围来分配分片数据
  • 按分区键和分片的映射表来分配分片数据

如何生成全局唯一ID

  • 使用auto_increment_increment和auto_increment_offset参数
  • 使用全局节点来生成ID
  • 在Redis等缓存服务中创建全局ID

作者:okokabcd
来源链接:https://www.cnblogs.com/okokabcd/p/9119849.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/database/68418.html

分享给朋友: