《Mysql入門MYSQL 淺談MyISAM 存儲(chǔ)引擎》要點(diǎn):
本文介紹了Mysql入門MYSQL 淺談MyISAM 存儲(chǔ)引擎,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
思維導(dǎo)圖
?
MYSQL應(yīng)用
?
?介紹
?
?????? mysql中用的最多存儲(chǔ)引擎就是innodb和myisam.做為Mysql的默認(rèn)存儲(chǔ)引擎,myisam值得我們學(xué)習(xí)一下,以下是我對(duì)《高性能MYSQL》書(shū)中提到的myisam的理解,請(qǐng)大家多多指教.
?
?特點(diǎn)
?
> 不支持事務(wù)
?
? 證明如下:
???? >> 表記錄:t2表的engine是myisam.
MYSQL應(yīng)用
MYSQL應(yīng)用?
MYSQL應(yīng)用??? >> 操作
MYSQL應(yīng)用
注意:如果你在數(shù)據(jù)庫(kù)進(jìn)行事務(wù)操作,但是事務(wù)無(wú)法成功,你就要看你的表引擎了,看這種引擎是否支持事務(wù).
>> 下面請(qǐng)看innodb中的事務(wù)操作
MYSQL應(yīng)用
??
> 存儲(chǔ)結(jié)構(gòu):數(shù)據(jù)文件(.MYD),索引文件(.MYI)和結(jié)構(gòu)文件(.frm)
?? >> 特點(diǎn):可以在不同服務(wù)器上拷貝數(shù)據(jù)文件和索引文件.
MYSQL應(yīng)用
> 加鎖和并發(fā)
? ?????? 加鎖:對(duì)整張表進(jìn)行加鎖,而不是行.
???????? 并發(fā):在讀數(shù)據(jù)的時(shí)候,所有的表上都可以獲得共享鎖(讀鎖),每個(gè)連接都不互相干擾.
???????????????? 在寫(xiě)數(shù)據(jù)的時(shí)候,獲得排他鎖,會(huì)把整個(gè)表進(jìn)行加鎖,而其他的連接請(qǐng)求(讀,寫(xiě)請(qǐng)求)都處于等待中.
> 修復(fù)表
?? >> 查看表狀態(tài)
MYSQL應(yīng)用
??? >> check一下表,看表是否正常.?
MYSQL應(yīng)用
?? >> repair(修復(fù)) 一下表.呵呵,我的這張表是正常的.
MYSQL應(yīng)用
> 列索引.可以基于BLOB或TEXT類型列的前500個(gè)字符,創(chuàng)建相關(guān)索引.
?? >> 給t2表添加一個(gè)text列.
MYSQL應(yīng)用
?? >> 表結(jié)構(gòu)如下
MYSQL應(yīng)用
MYSQL應(yīng)用?? >> 為content字段添加全文索引
MYSQL應(yīng)用
MYSQL應(yīng)用?? >> 查看表的索引情況
MYSQL應(yīng)用
MYSQL應(yīng)用> 延遲更新索引.MYISAM 默認(rèn)把DELAY_KEY_WRITE開(kāi)啟, 整個(gè)選項(xiàng)是MYISAM引擎獨(dú)有的.
MYSQL應(yīng)用
MYSQL應(yīng)用注意:在查詢結(jié)束后,不會(huì)將索引的改變數(shù)據(jù)寫(xiě)入磁盤(pán),而是改變內(nèi)存中的索引數(shù)據(jù).只有在清理緩沖區(qū)或關(guān)閉表時(shí)才將索引塊轉(zhuǎn)儲(chǔ)到磁盤(pán).
MYSQL應(yīng)用? >> 查看數(shù)據(jù)文件位置
MYSQL應(yīng)用
MYSQL應(yīng)用? >> 壓縮文件
MYSQL應(yīng)用
?總結(jié)
?
?myisam在索引層和壓縮層的卓越貢獻(xiàn),所以我們經(jīng)常把myisam用于slave層,供客戶端去讀取.而myisam在寫(xiě)庫(kù)操作的時(shí)候會(huì)產(chǎn)生排他鎖,如果寫(xiě)操作一直占用的話,那么其他連接請(qǐng)求一直就處于等待中,從而造成堵塞,甚至能把服務(wù)器dang掉.
?
參考文件:《高性能MYSQL》
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/6443.html