> 数据库 > MySQL >

mysql merg引擎学习

Mysql Merge表的优点

A: 分离静态的和动态的数据
B:利用结构接近的的数据来优化查询
C: 查询时可以访问更少的数据
D:更容易维护大数据集

对于merge表,需要注意

A:每个子表的结构必须一致,主表和子表的结构需要一致,
B:每个子表的索引在merge表中都会存在,所以在merge表中不能根据该索引进行唯一性检索(primary key/unique)。
C:子表需要是MyISAM引擎
D:REPLACE在merge表中不会工作
E:AUTO_INCREMENT 不会按照你所期望的方式工作。

CREATE TABLE mrg(a INT NOT NULL PRIMARY KEY)ENGINE=MERGE UNION=(t1,t2) INSERT_METHOD=LAST;

建表语句解释:

1)ENGINE=MERGE
指明使用MERGE引擎,有些同学可能见到过ENGINE=MRG_MyISAM的例子,也是对的,它们是一回事。
2)UNION=(t1, t2)
指明了MERGE表中挂接了些哪表,可以通过alter table的方式修改UNION的值,以实现增删MERGE表子表的功能。
3)INSERT_METHOD=LAST
INSERT_METHOD指明插入方式,取值可以是:0 不允许插入;FIRST 插入到UNION中的第一个表; LAST 插入到UNION中的最后一个表。
4)MERGE表及构成MERGE数据表结构的各成员数据表必须具有完全一样的结构。每一个成员数据表的数据列必须按照同样的顺序定义同样的名字和类型索引也必须按照同样的顺序和同样的方式定义。

merge表的一些问题:http://dev.mysql.com/doc/refman/5.1/zh/storage-engines.html#merge-table-problems

 

 参考链接:http://blog.csdn.net/qmhball/article/details/7499432?reload

     http://database.51cto.com/art/201010/230148.htm


(责任编辑:IT)