亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQLMerge存儲引擎

 更新時間:2016年03月22日 10:56:40   作者:gaohuanjie  
MERGE存儲引擎把一組MyISAM數(shù)據(jù)表當(dāng)做一個邏輯單元來對待,讓我們可以同時對他們進(jìn)行查詢。本文給大家介紹MySQLMerge存儲引擎,需要的朋友參考下吧

MERGE存儲引擎把一組MyISAM數(shù)據(jù)表當(dāng)做一個邏輯單元來對待,讓我們可以同時對他們進(jìn)行查詢。構(gòu)成一個MERGE數(shù)據(jù)表結(jié)構(gòu)的各成員MyISAM數(shù)據(jù)表必須具有完全一樣的結(jié)構(gòu)。每一個成員數(shù)據(jù)表的數(shù)據(jù)列必須按照同樣的順序定義同樣的名字和類型,索引也必須按照同樣的順序和同樣的方式定義。

Merge存儲引擎允許將一組使用MyISAM存儲引擎的并且表結(jié)構(gòu)相同(即每張表的字段順序、字段名稱、字段類型、索引定義的順序及其定義的方式必須相同)的數(shù)據(jù)表合并為一個表,方便了數(shù)據(jù)的查詢。

假設(shè)有l(wèi)og_2004、log_2005、log_2006、log_2007 這四張日志記錄表,其數(shù)據(jù)分別是每一年的數(shù)據(jù),表結(jié)構(gòu)如下(YY代表年份):

CREATE TABLE log_YY ( 
dt DATETIME NOT NULL, 
info VARCHAR(100) NOT NULL, 
INDEX (dt) 
) ENGINE = MyISAM;

可以通過如下SQL語句把這些表歸攏為一個邏輯單元:

CREATE TABLE log_merge( 
dt DATETIME NOT NULL, 
info VARCHAR(100) NOT NULL, 
INDEX(dt) 
) ENGINE = MERGE UNION = (log_2004, log_2005, log_2006, log_2007);

說明:ENGINE選項的值必須是MERGE;UNION選項列出了將被收錄在這個log_merge數(shù)據(jù)表的所有表。該log_merge表創(chuàng)建成功后,就可以像普通表那樣查詢它,只是每一次查詢都將同時作用于構(gòu)成它的每一個成員數(shù)據(jù)表 。譬如查詢這些日志數(shù)據(jù)表的數(shù)據(jù)行總數(shù):

SELECT COUNT(*) FROM log_merge;

譬如查詢每年各有多少日志記錄:

SELECT YEAR(dt) AS y, COUNT(*) AS entries FROM log_merge GROUP BY y;

創(chuàng)建MERGE存儲引擎的表也支持DELETE 和UPDATE操作。INSERT操作比較麻煩,因為MySQL需要知道應(yīng)該把新數(shù)據(jù)行插入到哪一個成員表里去。在MERGE存儲引擎數(shù)據(jù)表的定義里可以包括一個INSERT_METHOD選項(MySQL4.0之后支持),這個選項的值有NO、FIRST、LAST三個,其含義依次是禁止INSERT操作、將數(shù)據(jù)行插入到UNION中的第一個表或?qū)?shù)據(jù)行插入到UNION中的最后一個表。比如下面SQL語句指定將新數(shù)據(jù)添加到log_2007數(shù)據(jù)表----它是UNION選項所列出的最后一個數(shù)據(jù)表:

CREATE TABLE log_merge( 
dt DATETIME NOT NULL, 
info VARCHAR(100) NOT NULL, 
INDEX(dt) 
) ENGINE = MERGE UNION = (log_2004, log_2005, log_2006, log_2007) 
INSERT_METHOD = LAST;

創(chuàng)建一個新的成員數(shù)據(jù)表log_2009并讓它有同樣的表結(jié)構(gòu),然后修改log_merge數(shù)據(jù)表把log_2009包括進(jìn)來:

CREATE TABLE log_2009 LIKE log_2008; 
ALTER TABLE log_merge 
UNION = (log_2004, log_2005, log_2006, log_2007,log_2008,log_2009);

注意:使用Merge“合并”起來的表結(jié)構(gòu)相同的表最好不要有主鍵,否則會出現(xiàn)這種情況:一共有兩個成員表,其主鍵在兩個表中存在相同情況,但是寫了一條按相同主鍵值查詢的SQL語句,這時只能查到UNION列表中第一個表中的數(shù)據(jù)。

有關(guān)MySQLMerge存儲引擎小編就給大家介紹這么多,希望對大家有所幫助!

相關(guān)文章

最新評論