分库分表——已有表如何分?

JeeGem 2018-04-03 05:30:39
目前公司库最大数据量在2千万,明显影响性能了。于是让我搞搞架构,做个分库分表的。
已经写了demo,测试没啥问题。

那么关键问题来了。对于这一张张1千万、2千万的表,按照100万为一个表,我用什么工具去分呢?

还是手动拷贝前面100万,第二个100万,第三个100????

感谢各位老铁,很多年不玩CSDN,老账号都没了,积分也没有多少。。。
...全文
1779 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
AHUA1001 2018-10-12
  • 打赏
  • 举报
回复
为什么不直接用数据库自带的分区功能,何必这么麻烦呢,但是不管怎么分,都有先搞清楚,用什么字段分。
kimsung 2018-10-12
  • 打赏
  • 举报
回复
如果表不多, 用partition吧。 表多了, 就只能insert into new_table from old_table limit的方式了。
yangb71881 2018-10-09
  • 打赏
  • 举报
回复
创建分区表 --> exchange --> 创建普通表 --> exchange 写成脚本的方式
叶落千尘 2018-09-19
  • 打赏
  • 举报
回复
分区表可以做过渡使用。 如果想实现分表的话: 1、取主键的哈希值,在原有表上增加一个列,这个列为你要插入哪张表的表明列 2、存储过程批量插入到新表里 create procedure xx() begin end
weixin_40579234 2018-07-26
  • 打赏
  • 举报
回复
写个函数呗。
o前男友o 2018-04-11
  • 打赏
  • 举报
回复
看你分库分表规则,按照范围、哈希?,通过select,insert分哇
JeeGem 2018-04-05
  • 打赏
  • 举报
回复
引用 2 楼 roy_88 的回复:
创建分区表--导出原表数据-->新表名称改为原表名-->插入数据
这个一看不行的呀。。。 因为比如2千万。分在10个库,每个库分200万数据。目前200多张表了。。。手动肯定不行。。。 我用java写了个程序。逻辑在楼上 用其他语言也一样,或者写存储过程、脚本等等都可以。
JeeGem 2018-04-05
  • 打赏
  • 举报
回复
已经解决: 对于几百张表需要每个月新建一次:create table newTableName like oldTableName. 数据:insert insert into newTbleName values() select * from oldTableName limit m,n;
中国风 2018-04-04
  • 打赏
  • 举报
回复
创建分区表--导出原表数据-->新表名称改为原表名-->插入数据
zjcxc 2018-04-04
  • 打赏
  • 举报
回复
insert + delete 吧

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧