ARCHIVE存儲(chǔ)引擎 |
發(fā)布時(shí)間: 2012/8/23 17:48:03 |
ARCHIVE存儲(chǔ)引擎被用來(lái)以非常小的覆蓋區(qū)存儲(chǔ)大量無(wú)索引數(shù)據(jù)。 要允許這個(gè)存儲(chǔ)引擎,在建立MySQL之時(shí)使用--with-archive-storage-engine選項(xiàng)來(lái)configure。如果這個(gè)存儲(chǔ)引擎可帶這個(gè)語(yǔ)句使用,你可以看見(jiàn): mysql> SHOW VARIABLES LIKE 'have_archive';
當(dāng)年創(chuàng)建一個(gè)ARCHIVE表,服務(wù)器在數(shù)據(jù)庫(kù)目錄創(chuàng)建一個(gè)表定義文件。文件由表的名字開(kāi)始,并由一個(gè).frm的擴(kuò)展名。存儲(chǔ)引擎創(chuàng)建其它文件,所有都有由表名字開(kāi)頭的名字。數(shù)據(jù)和元數(shù)據(jù)文件有擴(kuò)展名.ARZ和.ARM。一個(gè).ARN文件可能在優(yōu)化操作中出現(xiàn)。 ARCHIVE引擎僅支持INSERT和SELEC(無(wú)刪除,替換或更新)。它支持ORDER BY操作,BLOB 域,以及基本地所有數(shù)據(jù)類(lèi)型,除了幾何數(shù)據(jù)類(lèi)型(請(qǐng)參閱19.4.1節(jié),“MySQL 空間數(shù)據(jù)類(lèi)型”)。ARCHIVE引擎使用行級(jí)鎖定。
存儲(chǔ): 當(dāng)記錄被插入時(shí),它們被壓縮。ARCHIVE引擎使用zlib無(wú)損數(shù)據(jù)壓縮。OPTIMIZE TABLE的使用可以分析表,并把它打包為更小的格式( 使用OPTIMIZE TABLE的原因,往下看)。引擎頁(yè)支持CHECK TABLE。有數(shù)種被使用的插入類(lèi)型:
· 直接插入INSERT之時(shí)把一行推僅壓縮緩沖,并且緩沖在它需要的時(shí)候刷新。到緩沖的插入被鎖定保護(hù)。一個(gè)SELECT強(qiáng)制一個(gè)刷新發(fā)生,除非進(jìn)來(lái)的唯一插入是INSERT DELAYED(那些刷新如同需要一樣)。請(qǐng)參閱13.2.4.2節(jié),“INSERT DELAYED 語(yǔ)法”。 · 塊插入旨在它完成后可見(jiàn),除非其它插入在同一時(shí)間發(fā)生,在這種情況下,塊插入可以被部分看見(jiàn)。一個(gè)SELECT不會(huì)導(dǎo)致一個(gè)塊插入的刷新,除非SELECT在被裝載時(shí)發(fā)生一個(gè)正常插入。
取回: 在取回時(shí),記錄根據(jù)需要被解壓縮,沒(méi)有行緩存。一個(gè)SELECT操作執(zhí)行完全表格掃描:當(dāng)一個(gè)SELECT發(fā)生之時(shí),它找出當(dāng)前有多少行可用,并讀行的數(shù)量。SELECT被當(dāng)作持續(xù)讀來(lái)執(zhí)行。注意,許多SELECT語(yǔ)句在插入過(guò)程中會(huì)損壞壓縮,除非塊插入或者延遲的插入被使用。要修復(fù)任何已發(fā)生壓縮問(wèn)題,你可以總是做OPTIMIZE TABLE(也支持REPAIR TABLE)。被SHOW TABLE STATUS報(bào)告的行數(shù)總是正確的。請(qǐng)參閱13.5.2.6節(jié),“REPAIR TABLE語(yǔ)法”,13.5.2.5節(jié),“OPTIMIZE TABLE語(yǔ)法”,13.5.4.18節(jié),“SHOW TABLE STATUS 語(yǔ)法”。 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |