首页 > 其他分享 >分库分表

分库分表

时间:2023-06-06 19:44:52浏览次数:33  
标签:分库 hash 分片 分表 迁移 数据 主键

1,使用什么字段作为分片主键?
一般需要考虑三个要求:数据尽量均匀分布在不同的表或库中,跨库操作尽可能少,所选字段的值不会变。
通常将 userID 作为分片主键,因为用户通常通常需要查询所有订单,而这是必需满足的需求。

2,分片策略是什么?
根据范围分片:根据分片主键范围,划分不同分片,如 1 - 10000, 10001 - 20000
根据 hash 值分片:根据分片主键的 hash 值,取模一个数,为方便扩展,这个数通常是2n次方,这样增加分片时,只要把原来的每个分片迁移一半的数据即可。
根据 hash 值和范围混合分片:先按范围,再按 hash 值分片。

3,历史数据如何迁移?
旧的架构继续运行,存量数据直接迁移,增量数据监听binlog日志,然后通过canal通知迁移程序迁移数据,等到新的数据库拥有全部数据且校验通过后,再逐步切换到新架构。

 

 

标签:分库,hash,分片,分表,迁移,数据,主键
From: https://www.cnblogs.com/zbseoag/p/17461537.html

相关文章

  • 数据库分库分表操作——假如用户注册人数过亿
    如果用户注册人数过亿,数据信息量大。此时就需要考虑分库分表单库分表垂直拆分和水平拆分垂直拆分       拆分列 水平分表——常见    本质把大表拆分小表——Id取模分表数据迁移问题:如果一开始将数据预估量很大。建议根据id范围分表。——多用于分......
  • 分库分表经典15连问
    1.我们为什么需要分库分表在分库分表之前,就需要考虑为什么需要拆分。我们做一件事,肯定是有充分理由的。所以得想好分库分表的理由是什么。我们现在就从两个维度去思考它,为什么要分库?为什么要分表? 1.1为什么要分库如果业务量剧增,数据库可能会出现性能瓶颈,这时候我们就需要考......
  • 数据库分区、分表、分库、分片
    分区   就是把一张表的数据分成N个区块,在逻辑上看最终只是一张表,但底层是由N个物理区块组成的分表   就是把一张表按一定的规则分解成N个具有独立存储空间的实体表。系统读写时需要根据定义好的规则得到对应的字表明,然后操作它。分库   一旦分表,一个库中的表会越......
  • 分而治之--浅谈分库分表及实践之路 | 京东云技术团队
    前言之前总在聊微服务,微服务本身也是分布式系统,其实微服务的核心思想是分而治之,把一个复杂的单体系统,按照业务的交付,分成不同的自服务,以降低资深复杂度,同时可以提升系统的扩展性。今天想聊一下分库分表,因为对于快速增长的业务来说,这个是无法回避的一环。之前我在做商城相关的SAAS......
  • javaer你还在手写分表分库?来看看这个框架怎么做的 干货满满
    合集-easy-query(2) 1.献给转java的c#和java程序员的数据库orm框架05-222.javaer你还在手写分表分库?来看看这个框架怎么做的干货满满05-26收起 javaorm框架easy-query分库分表之分表高并发三驾马车:分库分表、MQ、缓存。今天给大家带来的就是分库分表的干......
  • springboot~对应sharding-jdbc实现分库分表
    原因当mysql数据库单表大于1千万以后,查询的性能就不能保证了,我们必须考虑分库,分表的方案了,还好,sharding-jdbc可以很优雅的与springboot对接,完成对mysql的分库和分表。依赖整理为了不影响其它小容量的表,所有添加了动态数据源,只对需要分库分表的进行配置即可com.baomidou:dyna......
  • mycat linux 搭建,分表分库,增长长插入
    下载Mycat-server-1.6.7.1-release-20200209222254-linux.tar下载地址:Mycat-server-1.6.7.1-release-20200209222254-linux.tar解压进入bin启动./mycatstart启动./mycatstop停止./mycatrestart重启mycat分库分表server.xml<?xmlversion="1.0"encoding="UTF-8&qu......
  • 使用ShardingShpere来实现读写分离跟分库分表
    环境准备两个mysql集群,一主一从我们简单的用docker-compose来快速搭建一个version:'3'services:master1:image:mysql:5.7environment:MYSQL_ROOT_PASSWORD:123456ports:-"3307:3306"volumes:-./master1/data:/var/lib/mysql......
  • Mybatisplus3.5.1+shardingsphere-jdbc5.1.1分表
    注意使用雪花ID的话,查询ID时候必须使用long类型的ID,不要使用MP自带的默认的Serializable类型。否则会提示分片主键id数据类型和分片算法不匹配Inlineshardingalgorithmsexpressionxxxandshardingcolumnxxnotmatch错误。。。导入依赖<!--sharding-jdbc分库分表-->......
  • WM_分库分表的深入实战剖析v1.0 一般有用 看1
    分库分表的深入实战剖析内容大纲分库分表概念电商系统下订单性能瓶颈问题分库分表原则剖析&产生的问题剖析电商系统亿级订单数据分库分表实战指导一、分库分表概念概念:在数据爆炸的年代,单表数据达到千万级别,甚至过亿的量,都是很常见的情景。这时候再对数据库进行操作就是......