首页 > 数据库 >数据库分库分表操作——假如用户注册人数过亿

数据库分库分表操作——假如用户注册人数过亿

时间:2023-06-05 17:35:44浏览次数:41  
标签:分库 用户注册 数据库 拆分 分表 id

如果用户注册人数过亿,数据信息量大。此时就需要考虑分库分表

单库分表

垂直拆分和水平拆分

垂直拆分

              拆分列

 水平分表——常见

       本质把大表拆分小表——Id取模分表

数据迁移问题:

如果一开始将数据预估量很大。建议根据id范围分表。——多用于分表数据不能很好扩展问题

问题:一两张分表进行频繁读写操作。其他表业务空闲的状态

所以提出分摊数据读写压力——读写热点问题

解决:将ID变的随机——使得ID随机分散到所有表上。分摊读写压力。

同时id取模分表和id范围分表

先用ID范围去分表;然后在某个id范围内引入取模的功能。

不管是单库分表还是分库分表。都要进行中间层逻辑做路由。把这部分逻辑封装起来,放在数据库和业务代码之间。比如在代码和数据库之间添加服务Proxy

 

没有什么是加中间层不能解决的

分库分表会导致读扩散问题

       一般情况下,会将数据库主键作为分片键。如果使用where条件查询除id主键以外的普通索引列。比如name。没有办法定位在哪一个分表当中,那么会进行并发遍历分表进行读扩散操作。

标签:分库,用户注册,数据库,拆分,分表,id
From: https://www.cnblogs.com/liang9479/p/17458488.html

相关文章

  • 分库分表经典15连问
    1.我们为什么需要分库分表在分库分表之前,就需要考虑为什么需要拆分。我们做一件事,肯定是有充分理由的。所以得想好分库分表的理由是什么。我们现在就从两个维度去思考它,为什么要分库?为什么要分表? 1.1为什么要分库如果业务量剧增,数据库可能会出现性能瓶颈,这时候我们就需要考......
  • 案例补充:进阶版本的多用户注册等了功能
    案例补充:进阶版本的多用户注册等了功能1.支持多用户注册'''快捷键:tab缩进,shift+tab反向缩进''''''多用户注册'''whileTrue:#1.接收用户名和密码username=input('username>>>:')password=input('passwor......
  • 数据库分区、分表、分库、分片
    分区   就是把一张表的数据分成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
    分库分表的深入实战剖析内容大纲分库分表概念电商系统下订单性能瓶颈问题分库分表原则剖析&产生的问题剖析电商系统亿级订单数据分库分表实战指导一、分库分表概念概念:在数据爆炸的年代,单表数据达到千万级别,甚至过亿的量,都是很常见的情景。这时候再对数据库进行操作就是......