mysql merg引擎學習

weixin_34377065發表於2013-02-27

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

相關文章