mysql 数据库分表,合表

数据库份表格主要分

 

1:创建表格,主要语句【
create table member(
id bigint auto_increment primary key,
name varchar(20),
sex tinyint not null default '0'
)engine=myisam default charset=utf8 auto_increment=1;

】这个创建的表格就是需要分割的表格

2;创建表格,这个表格就是 分割后的两个表格

DROP table IF EXISTS tb_member1;
create table tb_member1(
    id bigint primary key auto_increment ,
    name varchar(20),
    sex tinyint not null default '0'
)ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

DROP table IF EXISTS tb_member2;
create table tb_member2(
    id bigint primary key auto_increment ,
    name varchar(20),
    sex tinyint not null default '0'
)ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
//创建tb_member2也可以用下面的语句  create table tb_member2 like tb_member1;】


3;创建主表,这个主要的就是 没有分割成功



DROP table IF EXISTS tb_member;
create table tb_member(
id bigint primary key auto_increment ,
name varchar(20),
sex tinyint not null default '0'
)ENGINE=MERGE UNION=(tb_member1,tb_member2) INSERT_METHOD=LAST CHARSET=utf8 AUTO_INCREMENT=1 ;】


4;然后最重要的一步了  就是分表了内容了


insert into tb_member1(id,name,sex) select id,name,sex from member where id%2=0;

insert into tb_member2(id,name,sex) select id,name,sex from member where id%2=1;
insert into tb_member1(id,name,sex) select id,name,sex from number limit 1,100;{这里的是从1开始 100条记录}


来自博客;

https://www.cnblogs.com/miketwais/articles/mysql_partition.html

 

 

 

数据库的合表:::::

select count(*) as repeat_count,name from test_01 group by name having repeat_count > 1;
统计数据库两个表格是不是有重复的,在Navicat Premium 查询编辑器里面直接运行
关键字去重的    select distinct name,age from test_01;
也可以使用GROUP BY过滤重复数据  select name,age,gender from test_01 group by name;

删除重复的数据,采用create table select方式从以上过滤完数据的查询结果中创建新表,作为临时表,然后把原来的表drop删除,再把临时表重命名为原来的表名
create table test_temp select name,age,gender from test_01 group by name;
drop table test_01;
alter table test_temp rename to test_01;


insert into test_01(name,age,gender) select name,age,gender from test_02;
合并表格

 

https://blog.csdn.net/metoo9527/article/details/80085128
来自微博

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值