mysql之myisam存儲引擎

mysql之myisam存儲引擎

ID:34724605

大?。?5.68 KB

頁數(shù):3頁

時(shí)間:2019-03-10

mysql之myisam存儲引擎_第1頁
mysql之myisam存儲引擎_第2頁
mysql之myisam存儲引擎_第3頁
資源描述:

《mysql之myisam存儲引擎》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫

1、MyISAM存儲引擎每張表在磁盤上的存儲分為三個(gè)文件:存放元數(shù)據(jù)的.frm文件,存放表記錄數(shù)據(jù)的.MYD文件,存放索引數(shù)據(jù)的.MYI為索引文件。MyISAM的一些特點(diǎn)·只對索引進(jìn)行緩存(KeyCache),數(shù)據(jù)文件使用操作系統(tǒng)cache,當(dāng)索引數(shù)據(jù)大于分配的keybuffer時(shí)也使用操作系統(tǒng)cache索引·單獨(dú)保存表的行數(shù),因此做count(*)時(shí)不需要全表掃描·不是事務(wù)安全的,不支持外鍵·表級鎖定·每張表一個(gè)數(shù)據(jù)文件,備份時(shí)可以直接復(fù)制,恢復(fù)時(shí)也可以直接覆蓋,操作方便·使用myisamchk進(jìn)行故障恢復(fù)MyISAM啟動以下為啟動選項(xiàng)--m

2、yisam-recover-option=mode設(shè)置MyISAM表損壞后自動恢復(fù)的模式--delay-key-write=ALL不在MyISAM表寫操作之間刷新keycachekey_buffer_sizeKeycache的大小以下系統(tǒng)變量影響MyISAM表bulk_insert_buffer_size用于優(yōu)化批量插入操作的樹緩沖區(qū)大小myisam_max_sort_file_sizeMySQL在重建MyISAM索引時(shí)(REPAIRTABLE、ALTERTABLE、LOADDATAINFILE)可以使用的臨時(shí)文件最大容量。如果需要的文件大

3、小超過此值,索引會在keycache中創(chuàng)建,相比而言速度較慢myisam_sort_buffer_size設(shè)置用于表恢復(fù)的緩沖區(qū)大小MyISAM表的存儲格式MyISAM支持三種不同的存儲格式:靜態(tài)固定長度、動態(tài)可變長度和壓縮格式。前兩者根據(jù)列的數(shù)據(jù)類型自動選擇。壓縮格式只能通過myisampack工具創(chuàng)建。當(dāng)使用CREATETABLE或ALTERTABLE操作不包含BLOB、TEXT列時(shí),ROW_FORMAT選項(xiàng)強(qiáng)制設(shè)置存儲格式(FIXED、DYNAMIC)。靜態(tài)固定長度:·CHAR和VARCHAR自動用空格填充,BINARY和VARBIN

4、ARY以0x00填充?!た焖?,因?yàn)閿?shù)據(jù)文件中的行可以用簡單的方法找到:用行長度乘以行號?!と菀拙彺妗け罎⒑笕菀字亟?,因?yàn)樾械奈恢霉潭ā!げ恍枰匦陆M織,除非刪除了大量的記錄,想為操作系統(tǒng)騰出磁盤空間。可以使用OPTIMIZETABLE或myisamchk-r完成?!ねǔ1葎討B(tài)格式花費(fèi)更多的空間。動態(tài)可變長度:·字符型的列長度可變,除了長度小于4的·每行首部存在一個(gè)位圖,用于記錄哪些列包含空字符串(對于字符型)或0(對于數(shù)字型)。注意這里不包括NULL。空串和0為被標(biāo)記在位圖中而不存儲在磁盤。非空字符串保存它的長度和實(shí)際內(nèi)容(即保存實(shí)際長度+

5、1)?!ねǔ1褥o態(tài)固定格式花費(fèi)較少的空間?!と绻凶兊暮艽螅瑫λM(jìn)行分片,導(dǎo)致行碎片。OPTIMIZETABLE或myisamchk-r可以用來改善性能。myisamchk-ei獲取表的統(tǒng)計(jì)信息?!け罎r(shí)比靜態(tài)格式的恢復(fù)困難,因?yàn)樾锌赡鼙环譃樗槠槠逆溄右部赡苁?。壓縮表:·花費(fèi)非常少的磁盤空間,這對于低速存儲器(如CD-ROMs)很有幫助?!っ啃袉为?dú)地壓縮,因此訪問開銷小。根據(jù)行的大小,每行的頭部占1到3個(gè)字節(jié)不等。·每列壓縮也不同,通常每列都具有不同的哈夫曼樹,以下為一些常見的壓縮類型:1、后綴空格壓縮2、前綴空格壓縮3、0值用1

6、位(bit)來存儲4、整型數(shù)值如果都分布在一小范圍中,則該列存儲使用更小的類型。比如BIGINT(8字節(jié))列中的值都分布在-128至127內(nèi),可以TINYINT(1字節(jié))存儲。5、列只有某幾種可能的值,轉(zhuǎn)換為ENUM類型6、以上各種壓縮類型都可任意結(jié)合·可以處理固定長度或動態(tài)長度記錄MyISAM表的問題當(dāng)以下事件發(fā)生時(shí),可能導(dǎo)致表損壞:·mysqld進(jìn)程在寫過程中被kill·不可意料的主機(jī)Crash·硬件故障·當(dāng)服務(wù)器正在修改表時(shí),使用外部程序(如myisamchk)修改表·MySQL或MyISAM代碼存在的Bug不正確的關(guān)閉表:每個(gè)MyI

7、SAM索引文件(.MYI)在首部有一個(gè)計(jì)數(shù)器用來驗(yàn)證表是否正確關(guān)閉。當(dāng)使用CHECKTABLE或myisamchk出現(xiàn)以下提示時(shí)表明計(jì)數(shù)器目前不同步:clientsareusingorhaven'tclosedthetableproperly

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時(shí)可能會顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。