技术文档

MySQL分库分表分库准备(6th)

前言

随着业务的发展单库中的分表的数量越来越多,>

MySQL分库分表分库准备(6th)

一般mysql不建议表的数量超过1000个。当然,这不能一概而论,还需要根据你的数据量,和硬件来确定然后根据自己的服务器调整几个mysql ‘%open%’ 参数,从而来确定你的库应该不超过几张表性能能在可接受范围内。

分库思路

在分库前我们需要确定一下我们应该如何去分库:

1、我们是根据用户ID来进行分库,和分表的思路一样。

2、我们需要在用户表中标记一下用户的数据是在哪个库。

3、在系统设置表中应该记录下当前最大分库数量。

4、在系统设置表中应该记录现在所有分库的库名。

5、在系统设置表中应该记录每个分库的数据库连接描述符信息。

分库规则

我们以>

在新增加库的时候,我们在新库中创建的表的数量是在系统设置表中的最大分表数。如在系统设置表中 name=’max_sharding_table_num’ 的 value=’10’,这时我们会初始化每个分表的个数为10个。

数据迁移

和分表一样我们应该很清楚哪些表是需要进行分库,我们需要分库的表有>

我们应该将之前的数据的库名进行统一。如之前test库的数据要先迁移到 test_1 上

提醒:数据迁移慎重,不是说迁移就迁移的。其实也可以不用迁移的,如果不迁移之后的自动分库的代码就需要做多一点的判断。这为了统一我就做了迁移。

数据迁移SQL

1
©2020-2024   万云SSL证书  (www.sslssl.com.cn)  万云科技   豫ICP备2020034358号-10