萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> 數據庫綜合 >> MYSQL的MERGE存儲引擎有哪些?

MYSQL的MERGE存儲引擎有哪些?

MYSQL的引擎有很多,我們一起學習一下MYSQL的MERGE存儲引擎有哪些吧!

MYSQL的引擎不是一般的多,這次說到的是MERGE,這個引擎有很多特殊的地方:

MERGE引擎類型允許你把許多結構相同的表合並為一個表。然後,你可以執行查詢,從多個表返回的結果就像從一個表返回的結果一樣。每一個合並的表必須有同樣的表定義。

MERGE存儲引擎在下面這種使用場合會最為有用,如果需要把日志紀錄不停的錄入MySQL數據庫,並且每天、每周或者每個月都創建一個單一的表,而且要制作來自多個表的合計查詢,MERGE表這時會非常有效。然而,這項功能有局限性。你只能合並MyISAM表而且必須嚴格遵守相同的表定義的限制。雖然這看起來好像是一個大問題,但是,如果你使用另外一種表類型(例如InnoDB),這種合並可能就不需要了。

其創建方法如下:

他將多個表在邏輯上當作一個表來查詢。他建立後有兩個文件,

.frm 表結構定義

.mrg union表的名字清單

兩個基本表:

CREATE TABLE TEST_MERGE_1(

ID INT(5) NOT NULL,

VALUE VARCHAR(100) NOT NULL,

PRIMARY KEY(ID)

) ENGINE=MyISAM DEFAULT CHARSET=utf8

CREATE TABLE TEST_MERGE_2(

ID INT(5) NOT NULL,

VALUE VARCHAR(100) NOT NULL,

PRIMARY KEY(ID)

) ENGINE=MyISAM DEFAULT CHARSET=utf8

MERGE表的建立:

CREATE TABLE TEST_MERGE(

ID INT(5) NOT NULL,

VALUE VARCHAR(100) NOT NULL,

PRIMARY KEY(ID)

) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8 INSERT_METHOD=LAST UNION=(TEST_MERGE_1,TEST_MERGE_2) ;

1. 此表類似於SQL中的union機制。

2. 此表結構必須與基本表完全一致,包括列名、順序。UNION表必須同屬一個DATABASE。

3. 基本表類型必須是MyISAM。

4. 可以通過修改.mrg文件來修改MERGE表,每個基本表的名字占一行。注意:修改後要通過FLUSH TABLES刷新表緩存。

5. 對基本表的更改可以直接反映在此表上。

6. INSERT_METHOD的取值可以是: 0 不允許插入 FIRST 插入到UNION中的第一個表 LAST 插入到UNION中的最後一個表。(4.0之後可用)

7. 定義在它上面的約束沒有任何作用,約束是由基本表控制的,例如兩個基本表中存在著同樣的一個Key值,那麼在MERGE表中會有兩個一樣的Key值。

以上就是精品為大家整理的MYSQL的MERGE存儲引擎,希望對大家有所幫助。

copyright © 萬盛學電腦網 all rights reserved