Mysql合并表Merge引擎

admin 发表于 [MySQL] 分类,标签: MySQL命令行 性能优化
0

1.Merge(MRG_MyISAM)存储引擎类型允许你把许多结构相同的表合并为一个表。当从合并表中执行查询,从多个表返回的结果就像从一个表返回的结果一样。

2.要创建合并表的前提是每一个合并的表必须有同样的表定义(表结构、索引),并且子表的存储引擎必须是Myisam。

 

3.合并表的创建方法
 

create table t_1(
id int(4) not null,
name varchar(20) not null,
PRIMARY KEY(id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
create table t_2(
id int(4) not null,
name varchar(20) not null,
PRIMARY KEY(id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
create table merge_t(
id int(4) not null,
name varchar(20) not null,
PRIMARY KEY(id)
)ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8 INSERT_METHOD=LAST UNION=(t_1,t_2) ;

4.合并表注意事项:

1)此表结构必须与基本表完全一致,包括列名、顺序。UNION表必须同属一个数据库。

2)子表的存储引擎必须是Myisam类型。

3)合并表创建后会创建2个文件:.frm 表结构定义 .mrg union表的名字清单 。

4)  对子表的操作会直接显示在合并表中。

5)合并表中 INSERT_METHOD的取值可以是: 0(不允许插入) ;FIRST(插入到UNION中的第一个表 );LAST(插入到UNION中的最后一个表)。(4.0之后可用) 。

6)合并表中的auto_increment 不会起作用。

7)  合并表的创建与删除操作所用的开销很小,对子表进行表结构、索引添加删除操作时,删除掉合并表,等子表操作完后再重更新创建合并表。

发表我的评论