售前咨询
技术支持
渠道合作

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

前言

随着业务的发展单库中的分表的数量越来越多, 使用在单库上存放过多的表这样是不合理的。因此,我们就需要考虑将数据根据数据库进行拆分。

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

分库思路

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

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

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

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

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

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

分库规则

我们以 ‘数字’ 为分库标识最终分库的名称如:test_1、test_2、test_3 …

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

数据迁移

和分表一样我们应该很清楚哪些表是需要进行分库,我们需要分库的表有 buy_order_n、goods_n、sell_order_n、order_goods_n。

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

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

数据迁移SQL

文章转载来自:ttlsa.com

上一篇:

下一篇:

相关文章