刪除數(shù)據(jù)必然會在數(shù)據(jù)文件中造成不連續(xù)的空白空間,而當(dāng)插入數(shù)據(jù)時(shí),這些空白空間則會被利用起來.于是造成了數(shù)據(jù)的存儲位置不連續(xù),以及物理存儲順序與理論上的排序順序不同,這種是數(shù)據(jù)碎片.實(shí)際上數(shù)據(jù)碎片分為兩種,一種是單行數(shù)據(jù)碎片,另一種是多行數(shù)據(jù)碎片.前者的意思就是一行數(shù)據(jù),被分成N個(gè)片段,存儲在N個(gè)位置.后者的就是多行數(shù)據(jù)并未按照邏輯上的順序排列.當(dāng)有大量的刪除和插入操作時(shí),必然會產(chǎn)生很多未使用的空白空間,這些空間就是多出來的額外空間.索引也是文件數(shù)據(jù),所以也會產(chǎn)生索引碎片,理由同上,大概就是順序紊亂的問題.Engine 不同,OPTIMIZE 的操作也不一樣的,MyISAM 因?yàn)樗饕蛿?shù)據(jù)是分開的,所以 OPTIMIZE 可以整理數(shù)據(jù)文件,并重排索引。這樣不但會浪費(fèi)空間,并且查詢速度也更慢。
站在用戶的角度思考問題,與客戶深入溝通,找到紹興網(wǎng)站設(shè)計(jì)與紹興網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站建設(shè)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國際域名空間、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋紹興地區(qū)。
查看碎片信息:
Index_length 代表索引的總量
Data_free 代表碎片數(shù)量
從information_schema中獲取信息:
碎片整理:
過程時(shí)間長短取決于表大小和碎片多少,
返回結(jié)果optimize status OK則整理完成;
我們都知道,在mysql (這里只探討innodb) 中delete數(shù)據(jù),并非真實(shí)刪除,而是在這行數(shù)據(jù)上打了一個(gè)del的標(biāo)記,所以這行占用的空間也并不會釋放,但是空間可以被復(fù)用,所以期望用delete數(shù)據(jù)來釋放空間的同學(xué)可以醒醒了。這樣就造成了空間上的碎片,那么如果干掉這些碎片呢。
這里先說結(jié)論,alter table語句可以觸發(fā)表重建,消除碎片空間。
mysql中的數(shù)據(jù)存儲結(jié)構(gòu)大概是下面這個(gè)樣子的
而delete掉的標(biāo)記會記錄在頭信息中。
做個(gè)實(shí)驗(yàn),看看空間是否真的沒有釋放;
創(chuàng)建一張表user,并插入很多數(shù)據(jù)
查看表的文件大小
再隨便插入幾條
ok這里看到文件大小增加了16k,這是因?yàn)閙ysql的一頁就是16k,所以文件大小是16k、16k的增長的。
這時(shí)候我們刪除大量的數(shù)據(jù)再次查看文件大小,仍然是272k,索命,數(shù)據(jù)雖然刪除,但是空間沒有釋放。
這里我們對主鍵執(zhí)行一個(gè)alter table語句
再次查看文件大小
ok 文件大小明顯的減少,這里說明主鍵的alter語句會重建表,并且釋放碎片空間;
這時(shí)候我們再刪除大量的數(shù)據(jù)再次查看文件大小,這里我們對普通列執(zhí)行一個(gè)alter table語句
再次查看文件大小
ok 文件大小明顯的減少,這里說明普通列的alter語句會重建表,并且釋放碎片空間;
1 log 表一般都是順序插入的,沒有大量delete的情況下是沒有所謂的碎片的。
題主要 看整理 碎片的效果 ,前提條件 表有了碎片?;蛘哳}主做了其他的動作沒有表述清楚。
2 構(gòu)造一個(gè)千萬級別行記錄的表,做大量的delete,insert ,然后查看 表的data_length 和index_length大小 ,再做 alter table xxx engine=innodb 或者 optimize table xxx;
網(wǎng)站欄目:mysql碎片怎么回事 mysql表碎片
網(wǎng)站路徑:http://jinyejixie.com/article6/doseeog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站制作、小程序開發(fā)、服務(wù)器托管、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)