目前公司库最大数据量在2千万,明显影响性能了。于是让我搞搞架构,做个分库分表的。
已经写了demo,测试没啥问题。那么关键问题来了。对于这一张张1千万、2千万的表,按照100万为一个表,我用什么工具去分呢?还是手动拷贝前面100万,第二个100万,第三个100????感谢各位老铁,很多年不玩CSDN,老账号都没了,积分也没有多少
已经写了demo,测试没啥问题。那么关键问题来了。对于这一张张1千万、2千万的表,按照100万为一个表,我用什么工具去分呢?还是手动拷贝前面100万,第二个100万,第三个100????感谢各位老铁,很多年不玩CSDN,老账号都没了,积分也没有多少
数据:insert insert into newTbleName values() select * from oldTableName limit m,n;
这个一看不行的呀因为比如2千万。分在10个库,每个库分200万数据。目前200多张表了手动肯定不行
我用java写了个程序。逻辑在楼上用其他语言也一样,或者写存储过程、脚本等等都可以。
如果想实现分表的话:
1、取主键的哈希值,在原有表上增加一个列,这个列为你要插入哪张表的表明列
2、存储过程批量插入到新表里
create procedure xx()
beginend
表多了, 就只能insert into new_table from old_table limit的方式了。