重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
MySQL InnoDB 表數(shù)據(jù)頁或者二級索引頁(簡稱數(shù)據(jù)頁或者索引頁)的合并與分裂對 InnoDB 表整體性能影響很大;數(shù)據(jù)頁的這類操作越多,對 InnoDB 表數(shù)據(jù)寫入的影響越大。
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),新邱企業(yè)網(wǎng)站建設(shè),新邱品牌網(wǎng)站建設(shè),網(wǎng)站定制,新邱網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,新邱網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
MySQL 提供了一個數(shù)據(jù)頁合并臨界值(MERGE_THRESHOLD),在某些場景下,可以人為介入,減少數(shù)據(jù)頁的合并與分裂。
在 InnoDB 表里,每個數(shù)據(jù)頁默認(rèn)16K 大小,默認(rèn) MERGE_THRESHOLD 值為 50,取值范圍從 1 到 50,默認(rèn)值即是最大值。也就是當(dāng)頁面記錄數(shù)占比小于 50% 時,MySQL 會把這頁和相鄰的頁面進行合并,保證數(shù)據(jù)頁的緊湊,避免太多浪費。
實現(xiàn)字段合并
首先建立關(guān)系(例如兩個表中的id相同的1對1關(guān)系),然后建立一個生成表查詢,之后把所有字段加入查詢中,執(zhí)行該查詢,即可生成合并后的新表。
實現(xiàn)記錄合并
兩表結(jié)構(gòu)要相同(至少有一個字段相同,如果一個都不同有什么意義呢),然后用追加查詢,選好追加到的表,和追加字段,執(zhí)行查詢即可cbcs147希望help
you。reference51cto,365testing
假設(shè)sdeg和zbug的表結(jié)構(gòu) 都是
ID varchar(4) primary key,
Name varchar(8),
Dept varchar(10),
存儲過程如下
CREATE PROCEDURE table_combine()
BEGIN
#第一步把sdeg和zbug兩個表進行聯(lián)合輸出到臨時表tmp_tab中
create temporary table tmp_tab select * from sdeg union select * from zbut;
#第二步創(chuàng)建結(jié)果表sdut,并創(chuàng)建主鍵
create table sdut(ID varchar(4) primary key, Name varchar(8),Dept varchar(10));
#第三步把臨時表里面的重復(fù)數(shù)據(jù)過濾并寫入sdut
INSERT INTO sdut(ID,Name,Dept) SELECT distinct ID,Name,Dept FROM tmp_tab;
#drop臨時表
drop table tmp_tab;
END
將一個表的數(shù)據(jù)數(shù)據(jù)全部附加到另一個表中,只要沒有主鍵沖突的問題,直接insert select 就可以了:
insert into ta(col1,col2,...) select col1,col2,... from tb;
如果有沖突,要先將所有主鍵刪除,然后合并后,再重新建主鍵。