mysql数据库分表及实现---MERGE分表法
来源:互联网 发布:尚学堂大数据课表 编辑:程序博客网 时间:2024/06/05 16:55
1,创建一个完整表存储着所有的成员信息
create table member(id bigint auto_increment primary key,name varchar(20),sex tinyint not nulldefault '0')engine=myisam default charset=utf8 auto_increment=1;
加入点数据:
insert into member(id,name,sex) values (1,'jacson','0');
insert into member(name,sex) select name,sex from member;
第二条语句多执行几次就有了很多数据。
2,下面我们进行分表:这里我们分两个表tb_member1,tb_member2
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,创建主表tb_member
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 ;
查看一下tb_member表的结构:desc tb_member;
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;
查看一下主表的数据:select * from tb_member;
注意:总表只是一个外壳,存取数据发生在一个一个的分表里面。
ps:创建主表时可能会出现下面的错误:
ERROR 1168 (HY000): Unable to open underlying table which is differently defined
or of non-MyISAM type or doesn't exist
若遇到上面这种错误,一般从两方面来排查:(从这两方面一般可以解决这个问题,本人也遇到了。)
1,查看上面的分表数据库引擎是不是MyISAM.
2,查看分表与指标的字段定义是否一致。
- mysql数据库分表及实现---MERGE分表法
- mysql 数据库分表及实现
- mysql数据库分表及实现
- mysql数据库分表及实现
- mysql数据库分表及实现
- mysql数据库分表及实现
- Mysql Merge存储引擎实现分表
- MySQL使用MERGE进行分表实现
- mysql 分表,分区,分库相关及merge引擎
- mysql数据库分表实现
- Mysql的Merge存储引擎实现分表查询
- 使用Mysql Merge存储引擎实现分表
- mysql使用MRG_MyISAM(MERGE)实现水平分表
- mysql使用MRG_MyISAM(MERGE)实现水平分表
- 使用Merge存储引擎实现 mysql分表
- Mysql的Merge存储引擎实现分表查询
- 使用Mysql Merge存储引擎实现分表
- MySQL利用MERGE存储引擎来实现分表
- 线性代数实用概念
- spring在web中的加载流程
- 内存泄露与分析
- App架构设计经验谈
- 2.3_矩形的绘制
- mysql数据库分表及实现---MERGE分表法
- JS<script> 一定要放在 Body 的最底部吗
- FFMPEG学习【libavcodec】:解码
- 为什么要使用依赖注入?
- SVN恢复到某个版本
- Error:不允许有匹配 "[xX][mM][lL]" 的处理指令目标。
- java JSON转String
- 非自动继承的函数n
- C#中String与Datetime