首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql分库分表后的查询

基础概念

MySQL分库分表是一种数据库优化策略,用于解决单点数据库在高并发、大数据量场景下的性能瓶颈问题。分库是将一个数据库拆分为多个数据库,分表是将一个表的数据拆分到多个表中。分库分表可以提高系统的扩展性、并发处理能力和数据管理效率。

相关优势

  1. 提高并发处理能力:通过分库分表,可以将请求分散到多个数据库或表上,减少单个数据库的压力。
  2. 提升数据管理效率:分库分表可以更好地进行数据备份、恢复和维护。
  3. 增强系统扩展性:随着业务增长,可以通过增加数据库或表的数量来扩展系统容量。
  4. 优化查询性能:对于大数据量的表,分表可以显著提高查询速度。

类型

  1. 垂直分库:根据业务功能将不同的表划分到不同的数据库中。
  2. 水平分表:将同一个表的数据按照某种规则(如范围、哈希等)拆分到多个表中。
  3. 分布式数据库:使用分布式数据库中间件(如ShardingSphere、MyCat等)来实现分库分表。

应用场景

  1. 电商系统:订单、商品、用户等数据量巨大,需要分库分表来提高查询性能。
  2. 金融系统:交易记录、用户信息等数据需要高并发处理和高可用性。
  3. 社交网络:用户数据、好友关系、动态等数据量庞大,需要分库分表来优化性能。

常见问题及解决方法

1. 查询效率问题

问题描述:分库分表后,跨库跨表的查询效率低下。

原因:分库分表后,数据分散在不同的数据库或表中,跨库跨表查询需要合并多个结果集,增加了查询复杂度和时间成本。

解决方法

  • 使用索引:确保每个表都有合适的索引,减少查询时间。
  • 数据冗余:在某些情况下,可以通过数据冗余来减少跨库跨表查询。
  • 使用中间件:利用分布式数据库中间件(如ShardingSphere)来优化跨库跨表查询。

2. 数据一致性问题

问题描述:分库分表后,如何保证数据的一致性?

原因:分库分表后,数据分布在多个数据库或表中,更新操作可能涉及多个节点,容易出现数据不一致的情况。

解决方法

  • 分布式事务:使用分布式事务管理器(如Seata)来保证跨库跨表操作的数据一致性。
  • 最终一致性:对于一些对实时性要求不高的场景,可以采用最终一致性的策略。

3. 数据迁移问题

问题描述:分库分表后,如何进行数据迁移?

原因:随着业务增长,可能需要重新调整分库分表的策略,这就涉及到数据迁移的问题。

解决方法

  • 在线迁移:使用支持在线迁移的工具(如pt-online-schema-change),在不影响业务的情况下进行数据迁移。
  • 离线迁移:在业务低峰期进行数据迁移,确保迁移过程中不影响业务。

示例代码

以下是一个简单的示例,展示如何使用ShardingSphere进行分库分表:

代码语言:txt
复制
import org.apache.shardingsphere.api.config.sharding.ShardingRuleConfiguration;
import org.apache.shardingsphere.api.config.sharding.TableRuleConfiguration;
import org.apache.shardingsphere.api.config.sharding.strategy.StandardShardingStrategyConfiguration;
import org.apache.shardingsphere.shardingjdbc.api.ShardingDataSourceFactory;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

public class ShardingExample {
    public static void main(String[] args) throws Exception {
        // 配置分库分表规则
        ShardingRuleConfiguration shardingRuleConfig = new ShardingRuleConfiguration();
        TableRuleConfiguration tableRuleConfig = new TableRuleConfiguration("t_order", "ds${0..1}.t_order${0..1}");
        tableRuleConfig.setKeyGeneratorConfig(new KeyGeneratorConfiguration("SNOWFLAKE", "order_id"));
        shardingRuleConfig.getTableRuleConfigs().add(tableRuleConfig);
        shardingRuleConfig.setDefaultDatabaseShardingStrategyConfig(new StandardShardingStrategyConfiguration("user_id", new PreciseShardingAlgorithm() {
            @Override
            public String doSharding(Collection<String> availableTargetNames, PreciseShardingValue<Long> shardingValue) {
                return "ds" + (shardingValue.getValue() % 2);
            }
        }));
        shardingRuleConfig.setDefaultTableShardingStrategyConfig(new StandardShardingStrategyConfiguration("order_id", new PreciseShardingAlgorithm() {
            @Override
            public String doSharding(Collection<String> availableTargetNames, PreciseShardingValue<Long> shardingValue) {
                return "t_order" + (shardingValue.getValue() % 2);
            }
        }));

        // 创建数据源
        Properties properties = new Properties();
        properties.setProperty("sql.show", "true");
        DataSource dataSource = ShardingDataSourceFactory.createDataSource(createDataSourceMap(), shardingRuleConfig, properties);

        // 执行查询
        try (Connection conn = dataSource.getConnection();
             Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery("SELECT * FROM t_order WHERE user_id = 1")) {
            while (rs.next()) {
                System.out.println(rs.getString("order_id"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    private static Map<String, DataSource> createDataSourceMap() {
        Map<String, DataSource> result = new HashMap<>();
        result.put("ds0", createDataSource("ds0"));
        result.put("ds1", createDataSource("ds1"));
        return result;
    }

    private static DataSource createDataSource(final String dataSourceName) {
        // 创建数据源的逻辑(可以使用HikariCP、Druid等)
        return null;
    }
}

参考链接

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MySQL分库浅谈一、分库类型二、分库查询三、分库问题四、分库策略

一、分库类型 1、单库单 所有数据都放在一个库,一张。 2、单库多表 数据在一个库,单水平切分多张。 3、多库多表 数据库水平切分,也水平切分。...二、分库查询 通过分库规则查找到对应和库过程: 如分库规则是acc_id mod 4方式,当用户新注册了一个账号,账号id123,我们可以通过acc_id mod 4方式确定此账号应该保存到...Acc_0003中。...当用户123登录时候,我们通过123 mod 4确定记录在Acc_0003中。 三、分库问题 分库需要按不同维度记录数据,否则无法满足业务场景不同维度查询。...四、分库策略 1、按时间; 2、主表和详细信息; 3、按数据区间; 4、取模映射; 5、一致性Hash; 6、二叉树

4K50

MySQL - 分库

一.分库原因 前文介绍MySQL主从模式,将读写分离以提高性能。 主从模式对于写少读多场景确实非常大优势,但是总会写操作达到瓶颈时候,导致性能提不上去。...二.分库拆分思路 1.什么时候进行分库 MySQL 高可用架构大多都是一主多从,所有写入操作都发生在 Master 上,随着业务增长,数据量增加,很多接口响应时间变得很长,经常出现 Timeout...2.什么时候进行 应用场景是单数据量增长速度过快,影响了业务接口响应时间,但是 MySQL 实例负载并不高,这时候只需要,不需要分库(拆分实例)。...三.垂直拆分 垂直分库 垂直分库是按业务分库,例如一个电商系统shop库按业务有订单,会员,商品,按业务拆分,响应shop库被拆分到三个RDS实例中,数据库写入能力提升,服务接口响应时间变短...垂直拆分缺点 跨库关联查询 在单库未拆分之前,我们可以很方便使用 join 操作关联多张查询数据,但是经过分库两张可能都不在一个数据库中,如何使用 join 呢?

5.9K31
  • Mysql分库

    目前分库必要性: 由于在做消息中心,消息中心量级又比较大,目前大概有7000W用户,差不多每天200W~500W消息样子,数据达到千万级非常快,目前用mysql存储消息发送记录以及消息发送详情...,那么单张存储的话及时数据索引建立合理也不可避免会影响数据查询和写入速度。...这里要明白一个概念,分库并不是绑定在一起,我们需要根据自己切实情况进行选择; 从我个人来看,分库是为了解决高并发问题,流量平均,是解决大数据量问题,数据平均; 零....一般来讲,单一数据库实例数据阈值在1TB之内,是比较合理范围 一. 分库中间件划分 分库中间件主要分为代理类,客户端类两种类型。...有哪些分库中间件?不同分库中间件都有什么优点和缺点?

    3.6K10

    mysql 分库

    理由:根据数据活跃度进行分离,(因为不同活跃数据,处理方式是不同) 案例: 对于一个博客系统,文章标题,作者,分类,创建时间等,是变化频率慢,查询次数多,而且最好有很好实时性数据,我们把它叫做冷数据...这样纵向: 首先存储引擎使用不同,冷数据使用MyIsam 可以有更好查询数据。活跃数据,可以使用Innodb ,可以有更好更新速度。...其次,对冷数据进行更多从库配置,因为更多操作时查询,这样来加快查询速度。对热数据,可以相对有更多主库横向处理。...结构是完全一样,但是,根据某些特定规则来划分,如根据用户ID来取模划分。 理由:根据数据量规模来划分,保证单容量不会太大,从而来保证单查询等处理能力。...例如博客冷数据,假如分为100个,当同时有100万个用户在浏览时,如果是单的话,会进行100万次请求,而现在,就可能是每个进行1万个数据请求(因为,不可能绝对平均,只是假设),这样压力就降低了很多很多

    3.1K60

    MySQL分库

    为什么要分库# ① 从连接数来看,根据官方文档,5.1.17以上版本,单台mysql数据库连接数默认是151,上限为10w,虽然可以在上限范围内人为设置最大连接数,或者建立连接池进行一定程度优化...1.1 优点# 分库可以减轻单库访问压力,提高稳定性,在高并发访问时候可以增大连接负载,提升查询效率 可以解决单存储量过大,查询效率低下问题,降低锁概率 1.2 缺点# 会增加跨或跨库联合查询复杂度...需要引入分布式事务,复杂度增加了,对于性能有影响 跨库join困难 在不同库查到数据还要再应用层聚合,容易造成合并困难 比如水平分分库会造成字段冗余 order by、limit 等操作困难度增加...什么是分库# 2.1 分库# 2.1.1 垂直分库# 垂直分库一般是根据业务来划分,比如一个系统分成很多个模块,有日志模块、用户模块、产品模块、工厂模块、物料模块等等,每个模块占用一个数据库,这些不同数据库可以分散放在不同服务器...② 可以依据字段访问频繁度把字段独立到新,因为频繁查表容易导致锁,会影响到其它查询不频繁字段 ③ 单字段太多,也可以考虑垂直 ④ …… 图片 2.2.2 水平分# 水平分不用拆字段

    4.5K20

    MySQL 分库

    CPU瓶颈:排序、分组、连接查询、聚合统计等SQL会耗费大量CPU资源,请求数太多,CPU出现瓶颈。 为了解决上述问题,我们需要对数据库进行分库处理。...分库中心思想都是将数据分散存储,使得单一数据库/数据量变小来缓解单一数据库性能问题,从而达到提升数据库性能目的。 # 拆分策略 分库形式,主要是两种:垂直拆分和水平拆分。...而拆分粒度,一般又分为分库,所以组成拆分策略最终如下: # 垂直拆分 垂直分库 垂直分库:以为依据,根据业务将不同拆分到不同库中。 特点: 每个库结构都不一样。...MyCat:数据库分库中间件,不用调整代码即可实现分库,支持多种语言,性能不及前者。 本次课程,我们选择了是MyCat数据库中间件,通过MyCat中间件来完成分库操作。...具体分库策略,只需要在MyCat中配置即可。

    14.2K10

    百亿级数据 分库 怎么分页查询

    随着数据日益增多,在架构上不得不分库,提高系统读写速度,但是这种架构带来问题也是很多,这篇文章就来讲一讲跨库/分页查询解决方案。...关于分库其他问题,请看陈某前一篇文章:聊聊 分库 架构背景 笔者曾经做过大型电商系统中订单服务,在企业初期时业务量很少,单库单基本扛得住,但是随着时间推移,数据量越来越多,订单服务在读写性能上逐渐变差...关于冷热分离和查询分离不了解,可以看笔者前面的文章: 冷热分离 使用 查询分离 从20s优化到500ms 最终经过架构组讨论,选择了分库;至于如何拆分,分片键如何选择等等细节不是本文重点,不再赘述...在分库之前先来拆解一下业务需求: C端用户需要查询自己所有的订单 后台管理员、客服需要查询订单信息(根据订单号、用户信息.....查询) B端商家需要查询自己店铺订单信息 针对以上三个需求,判断下优先级...不会随着翻页增加数据返回量 缺点也是很明显:需要进行两次查询 总结 本篇文章中介绍了分库分页查询三种方案: 全局查询法:这种方案最简单,但是随着页码增加,性能越来越低 禁止跳页查询法:这种方案是在业务上更改

    2.1K10

    分库索引问题

    摘要 最近遇到一个慢sql,在排查过程中发现和分库索引设置有关系,总结了下问题。...扩展 分库索引 为什么题目叫分库索引问题,直接原因和分库并没有什么关系啊?因为在排查问题时,犯了一个错误。...以为路由到具体brandgood_0020,可以直接根据brandgoodid主键索引来查询了。...可以根据clustering key到数据节点partition块,然后根据local index 找到对应数据。 但其实mysql分库不一样,键不是索引,只是客户端路由。...只负责找到对应。到以后,就是和单一样查询逻辑。 因为键不是索引,但是查询语句是必须要带着键,那意味着我们分库以后索引大部分要建成联合索引了,键+索引键。

    2.6K30

    Mysql分库方案

    为什么要 当一张数据达到几千万时,你查询一次所花时间会变多,如果有联合查询的话,我想有可能会死在那儿了。目的就在于此,减小数据库负担,缩短查询时间。...mysql中有一种机制是锁定和行锁定,是为了保证数据完整性。锁定表示你们都不能对这张进行操作,必须等我对表操作完才行。...利用merge存储引擎来实现 如果要把已有的大数据量表分开比较痛苦,最痛苦事就是改代码,因为程序里面的sql语句已经写好了。用merge存储引擎来实现, 这种方法比较适合. 举例子: ?...经过垂直分区数据库架构图如下: ?...如何来确定某个用户所在shard呢,可以建一张用户和shard对应数据,每次请求先从这张找用户shard id,再从对应shard中查询相关数据,如下图所示: ?

    4.1K60

    为什么分库不建议跨分片查询

    且那篇文章给出方案是基于订单ID、商户编号、用户ID都有一份分库数据。那么为什么要这么做?能否只基于某一列例如用户ID分库,答案肯定是不能。...个:image_${0..127}; 数据库服务器:32C64G; 数据库版本:MySQL-5.7.23; 操作系统:CentOS 6.9 Final; 连接池:druid 1.1.6; mysql-connector-java...第2个测试场景如下: 每个大概160w数据; 累计1w次分别测试跨1个,8个、16个、32个、64个、128个,结果如下: 跨分片键查询压力测试 结论:跨数量越大,跨查询性能越差...笔者认为首先sharding-sphere是一个通用分库中间件,而不是在某些特定条件才能使用中间件,所以应该要尽可能兼容所有SQL。...所以,分库中间件跨分片查询在项目特定阶段能够大大减少开发成本,从而以最短时间上线业务需求。

    1.8K30

    MySQLMySQL分库详解

    三、垂直拆分 3.1 垂直分库 3.2 垂直 3.3 垂直拆分优缺点 四、水平拆分 4.1 水平分 4.2 水平分库 4.3 水平拆分优缺点 五、几种常用分库策略...5.1 根据数值范围 5.2 根据数值取模 5.3 根据地理位置 六、分库带来问题 6.1 事务一致性问题 6.1.1 分布式事务 6.1.2 最终一致性 6.2 跨节点关联查询...库内分只解决了单一数据量过大问题,但没有将分布到不同机器库上,因此对于减轻MySQL数据库压力来说,帮助不是很大,大家还是竞争同一个物理机CPU、内存、网络IO,最好通过分库来解决。...六、分库带来问题 分库能有效缓解单机和单库带来性能瓶颈和压力,突破网络IO、硬件资源、连接数瓶颈,同时也带来了一些问题。下面将描述这些技术挑战以及对应解决思路。...6.6 外键约束问题 外键约束问题比较难解决,不能完全依赖数据库本身来完成之前功能。如果需要对分库做外键约束,就需要分库每个单库数据是内聚,否则就只能靠应用层判断,容错方式了。

    10.4K41

    MySQL 分库方式

    对于分库来说,具体有两种方式:垂直拆分和水平拆分。 垂直拆分主要是业务细化和独立,和业务联系比较密切。所以本文只讨论更通用水平拆分。...为什么分库 降低单机 MySQL 性能 降低单或者单库数据量,减少数据库查询压力 突破单机容量限制 分库方式 范围区分(range):按月\按区\按其他等特殊属性维度进行分片 预定义范围...:预估有多少数据容量,对数据进行范围分配,0-100->A 101-200->B 取模 Hash:对指定字段进行取模运算,匹配对应库和。...分库表带来问题 数据维护成本高 跨库业务join 分布式事务性能低下 自增 id 生成问题 非分片字段查询轮询浪费 多节点排序问题 分库中间件 对于分库中间件有很多,Shardingsphere...JDBC应用模式 优点: 性能好 支持跨数据库(mysql oralce mssq) 缺点: 不能跨语言 对开发不够友好,增加开发难度 ---- Proxy模式 代理模式是基于 MySQL 做一层转发代理

    1.9K10

    MySQL分库方案

    1.为什么要: 当一张数据达到几千万时,你查询一次所花时间会变多,如果有联合查询的话,我想有可能会死在那儿了。目的就在于此,减小数据库负担,缩短查询时间。...mysql中有一种机制是锁定和行锁定,是为了保证数据完整性。锁定表示你们都不能对这张进行操作,必须等我对表操作完才行。...利用merge存储引擎来实现 如果要把已有的大数据量表分开比较痛苦,最痛苦事就是改代码,因为程序里面的sql语句已经写好了。用merge存储引擎来实现, 这种方法比较适合. 举例子: ?...经过垂直分区数据库架构图如下: ?...如何来确定某个用户所在shard呢,可以建一张用户和shard对应数据,每次请求先从这张找用户shard id,再从对应shard中查询相关数据,如下图所示: ?

    4.1K30

    Mysql分库方案

    Mysql分库方案 1.为什么要: 当一张数据达到几千万时,你查询一次所花时间会变多,如果有联合查询的话,我想有可能会死在那儿了。目的就在于此,减小数据库负担,缩短查询时间。...分库规则 设计时候需要确定此按照什么样规则进行分库。...路由 通过分库规则查找到对应和库过程。...MySQL使用为什么要分库 可以用说用到MySQL地方,只要数据量一大, 马上就会遇到一个问题,要分库。 这里引用一个问题为什么要分库呢?MySQL处理不了大吗?...但MySQL太大后有一个问题是不好解决: 结构调整相关操作基本不在可能。所以大项在使用中都会面监着分库应用。

    2.6K30

    Mysql分库方案

    作者:兵小志大 链接:www.cnblogs.com/try-better-tomorrow Mysql分库方案 1.为什么要: 当一张数据达到几千万时,你查询一次所花时间会变多,如果有联合查询的话...目的就在于此,减小数据库负担,缩短查询时间。 mysql中有一种机制是锁定和行锁定,是为了保证数据完整性。锁定表示你们都不能对这张进行操作,必须等我对表操作完才行。...分库规则 设计时候需要确定此按照什么样规则进行分库。...MySQL使用为什么要分库 可以用说用到MySQL地方,只要数据量一大, 马上就会遇到一个问题,要分库。 这里引用一个问题为什么要分库呢?MySQL处理不了大吗?...但MySQL太大后有一个问题是不好解决: 结构调整相关操作基本不在可能。所以大项在使用中都会面监着分库应用。

    3.7K31

    MySQL 分库实践

    增加一个Master是不能解决问题, 因为数据要保存一致性,写操作需要2个master之间同步,相当于是重复了,而且架构设计更加复杂 这时需要用到分库(sharding),把库和存放在不同MySQL...,则使用垂直拆分,即根据业务拆分成不同库 如果因为单张数据量太大,则使用水平拆分,即把数据按照某种规则(mycat/conf/rule.xml定义算法)拆分成多张 分库原则应该是先考虑垂直拆分...,再考虑水平拆分 三、垂直拆分 分库和读写分离可以共同进行 1....客户端就需要去连接不同逻辑库了,根据业务操作不同逻辑库 然后配置了两个写库,两台机器把库平分了,分担了原来单机压力。分库伴随着,从业务上对表拆分 2. 垂直 垂直,基于列字段进行。...水平分库能够有效缓解单机和单库性能瓶颈和压力,突破IO、连接数、硬件资源等瓶颈 分库可以和主从复制同时进行,但不基于主从复制;读写分离才基于主从复制 1.

    40540

    MySQL如何实现分库,如何提高查询效率

    本人没有做过电商平台,但了解其中道道,今天闲来无事,说说其中道道。下边我要开始表演了。 在大型电商网站中,随着业务增多,数据库中数据量也是与日俱增,这时候就要将数据库进行分库了。...1、如何分库? 两种解决方案:垂直拆分、水平拆分 垂直拆分:根据业务进行拆分,比如可以将一张多个字段拆成两张,一张是不经常更改,一张是经常改。...水平拆分:即根据来进行分割:比如user可以拆分为user0,、user1、user2、user3、user4等 2、分库之后如何实现联合查询?...可以使用第三方中间件来实现,比如:mycat、shading-jdbc 原理解析: 当客户端发送一条sql查询:select * from user;此时中间件会根据有几个子表,拆分成多个语句:select...* from user1;select * from user2;select * from user3等多条语句查询,然后将查询结果返回给中间件,然后汇总给客户端。

    4.4K20

    分库,如何部署上线?

    我们先来讲一个段子 面试官:“有并发经验没?”应聘者:“有一点。”面试官:“那你们为了处理并发,做了哪些优化?”应聘者:“前后端分离啊,限流啊,分库啊。。”面试官:"谈谈分库吧?"...面试官心理活动:这个仁兄讲怎么这么像网上博客抄,容我再问问。面试官:“你们分库,如何部署上线?”应聘者:“这!!!!!!”...不要惊讶,写这篇文章前,我特意去网上看了下分库文章,很神奇是,都在讲怎么进行分库,却不说完以后,怎么部署上线。这样在面试时候就比较尴尬了。...记住,面试官怎么回答不重要。重点是,你这个问题出去,会给面试官一种错觉:"这个小伙子真的做过分库。" 如果你担心进去了,真派你去做分库怎么办?OK,不要怕。我赌你试用期碰不到这个活。...记住,面试官怎么回答不重要。重点是,你这个问题出去,会给面试官一种错觉:"这个小伙子真的做过分库。" 如果你担心进去了,真派你去做分库怎么办?OK,不要怕。我赌你试用期碰不到这个活。

    94220

    分库,如何部署上线?

    前言 我们先来讲一个段子 面试官:“有并发经验没?”应聘者:“有一点。”面试官:“那你们为了处理并发,做了哪些优化?”应聘者:“前后端分离啊,限流啊,分库啊。。”面试官:"谈谈分库吧?"...面试官心理活动:这个仁兄讲怎么这么像网上博客抄,容我再问问。面试官:“你们分库,如何部署上线?”应聘者:“这!!!!!!”...不要惊讶,写这篇文章前,我特意去网上看了下分库文章,很神奇是,都在讲怎么进行分库,却不说完以后,怎么部署上线。这样在面试时候就比较尴尬了。...记住,面试官怎么回答不重要。重点是,你这个问题出去,会给面试官一种错觉:"这个小伙子真的做过分库。" 如果你担心进去了,真派你去做分库怎么办?OK,不要怕。我赌你试用期碰不到这个活。...记住,面试官怎么回答不重要。重点是,你这个问题出去,会给面试官一种错觉:"这个小伙子真的做过分库。" 如果你担心进去了,真派你去做分库怎么办?OK,不要怕。我赌你试用期碰不到这个活。

    73620

    分库如何部署上线?

    面试官:"谈谈分库吧?" 应聘者:“bala。bala。bala。。” 面试官心理活动:这个仁兄讲怎么这么像网上博客抄,容我再问问。 面试官:“你们分库,如何部署上线?”...不要惊讶,写这篇文章前,我特意去网上看了下分库文章,很神奇是,都在讲怎么进行分库,却不说完以后,怎么部署上线。这样在面试时候就比较尴尬了。...另外,如果面试官问题是 你们怎么进行分库? 这个问题问很泛,所以回答这个问题建议自己主动把策略,以及如何部署方法讲出来。因为这么答,显得严谨一些。...记住,面试官怎么回答不重要。重点是,你这个问题出去,会给面试官一种错觉:"这个小伙子真的做过分库。" 如果你担心进去了,真派你去做分库怎么办?OK,不要怕。我赌你试用期碰不到这个活。...增量数据:在该次部署,数据库 test_tb 新产生数据,我们称之为增量数据。 然后迁移流程如下 (1)先计算你要迁移那张 max(主键) 。

    1.4K10
    领券