Mycat2 使用教程(三)原始数据导入分库分表【MySQL分库分库分表】
- 本文主要描述mycat2完成分库分别数据源配置后,将数据导入的过程
- mysql 分库分表
- 如果是新项目,则不用考虑本文内容
- mycat2如何配置分库分表?见上文
1.计划
- Mycat2 暂时不支持自动对全部表进行分库分表
- 因此我们需要考虑对哪些表进行分库分表
- 下方的SQL可以帮助你查看当前数据库中,哪些表数据最多,是重要参考点
SELECT table_name,table_rows FROM information_schema.tables WHERE TABLE_SCHEMA = '数据库名' ORDER BY table_rows DESC;
- 参考上述数据和业务分析,我打算对我们项目的t_customer_oilcoupon、t_customer_oilcoupon_get_record、t_customer_notice这3个表进行处理
2.按表导出数据
- 使用navicat按表导出上述3个表的数据
- 按表导出是为了方便编辑sql文件
- navicat中参考下图操作
2.编辑sql文件
- 如下图,请理解后修改如图2个位置
- 下方2句都是新增
- 上图后面部分的语句是:
# id
KEY `id` (`id`)
# 分库分表描述
dbpartition by mod_hash(id) tbpartition by mod_hash(id) tbpartitions 2 dbpartitions 2;
3.导入数据
- 在mycat2连接中执行修改后的sql
- 执行完成后进入2库4表去检查是否成功。
4.验证结果
4.1 分库分表检查
- 查看分库分表情况,如下图,分库分表成功,每个表均有数据
4.2 数据量检查
- 原表有141662条数据(测试库,数据量不大)
- 在mycat2连接中查询,数据量也为141662,如下图。
4.3 随机数据检查
- 从原数据库中随机抽取3条数据
- 然后利用上述3条数据的id去mycat分库分表后的数据中查询出来比较
经验证,数据一致,达到效果。
- 这里完成了一个表的处理,那么全部数据怎么处理呢?
- 我的建议是先把整体数据导入进去,然后逐个处理和导入需要分库分表的表。
5.常见问题
暂无。
如果遇到其他问题,可以在下方留言。
具有代表性的问题,我会提到正文中来。