MySQL中merge表格儲存體引擎用法

來源:互聯網
上載者:User

標籤:style   blog   color   io   使用   ar   strong   檔案   資料   

在Mysql資料庫中,Merge表有點類似於視圖。mysql的merge引擎類型允許你把許多結構相同的表合并為一個表。之後,你可以執行查詢,從多個表返回的結果就像從一個表返回的結果一樣。每一個合并的表必須有完全相同表的定義和結構。

Mysql Merge表的優點:
A. 分離靜態和動態資料
B. 利用結構接近的的資料來最佳化查詢
C. 查詢時可以訪問更少的資料
D. 更容易維護大資料集
E. 可以通過修改.mrg檔案來修改Merge表,當然也可以用alter進行修改,修改後要通過FLUSH TABLES重新整理表緩衝,此法可以動態增加減少子表

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

基本表:

CREATE TABLE TEST_MERGE_1(ID INT(5) NOT NULL,VALUE VARCHAR(100) NOT NULL,PRIMARY KEY(ID));CREATE TABLE TEST_MERGE_2(ID INT(5) NOT NULL,VALUE VARCHAR(100) NOT NULL,PRIMARY KEY(ID));MERGE表:CREATE TABLE TEST_MERGE(ID INT(5) NOT NULL,VALUE VARCHAR(100) NOT NULL,PRIMARY KEY(ID)) TYPE=MRG_MyISAM INSERT_METHOD=LAST UNION=(TEST_MERGE_1,TEST_MERGE_2);

 

說明:
1. 此表結構必須與基本表完全一致,包括列名、順序。UNION表必須同屬一個DATABASE。
2. 此表類似於SQL中的union機制。
3. 基本表類型必須是MyISAM的。
4. 可以通過修改.mrg檔案來修改MERGE表,每個基本表的名字佔一行。注意:修改後要通過FLUSH TABLES重新整理表緩衝。
5. 對基本表的更改可以直接反映在此表上。
6. INSERT_METHOD的取值可以是: 0 不允許插入 FIRST 插入到UNION中的第一個表 LAST 插入到UNION中的最後一個表。(4.0之後可用)
7. 定義在它上面的約束沒有任何作用,約束是由基本表控制的,例如兩個基本表中存在著同樣的一個Key值,那麼在MERGE表中會有兩個一樣的Key值。

注意:
1.如果是通過修改.mrg檔案的方式來修改MERGE表,那麼一定要修改後要通過FLUSH TABLES重新整理表緩衝,否則修改不會生效。最近犯過一次這樣的錯誤。
2.在資料量、查詢量較大的情況下,不要試圖使用Merge表來達到類似於Oracle的表分區的功能,會很影響效能。我的感覺是和union幾乎等價。
3.查詢結果及順序與建立Merge表時聯合表的順序有關。
假設有這樣兩條個語句:
INSERT INTO TEST_MERGE_1(ID,VALUE) VALUES(1,‘ciray‘);
INSERT INTO TEST_MERGE_2(ID,VALUE) VALUES(1,‘blog.csdn.net/ciray‘);
然後,這個查詢:
SELECT * FROM TEST_MERGE WHERE ID=1;
將只會得到一條記錄(1,‘ciray‘),並不是兩條記錄,也不會是(1,‘blog.csdn.net/ciray‘)。這是因為ID是 PRIMARY KEY,如果在第一個表中查詢到記錄,則不在後面的表中記錄查。如果ID並沒有定義唯一性限制式,則這個查詢會得到兩條記錄。

MySQL中merge表格儲存體引擎用法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.