有關於Mysql的MERGE表型別

2021-06-27 16:30:44 字數 938 閱讀 2135

他將多個表在邏輯上當作乙個表來查詢。他建立後有兩個檔案,

.frm 表結構定義

.mrg union表的名字清單

兩個基本表:

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=merge union=(test_merge_1,test_merge_2) insert_method=last;

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表型別

將多個表在邏輯上當作乙個表 建立後有兩個檔案,frm 表結構定義 mrg union表的名字清單 兩個基本表 create table merge 1 id int 5 not null,name varchar 100 not null,primary key id create table me...

關於MERGE 的用法

題目 乙個月統計一次每個雇員去了哪些國家 user name region tom india jerry usa mike england marry holland 但是有一張彙總表 user name least region arrived region count 雇員名 最新去的國家 已...

對 MySQL 表分割槽與 MERGE分表的個人理解

最近資料庫表資料接近3000萬,查詢效能有點慢 對於mysql資料庫我已經做的 那為什麼還慢呢?排查發現,雖然分了區,但是有乙個常用的查詢語句,預設並沒有帶時間戳這個字段,分割槽是按時間戳來劃分的,你又不帶時間戳這個字段,那不就得全分割槽檢索了嗎?所以慢啊,分割槽並沒有被有效利用。就好像網上看到的一...