MYSQL 淺談MyISAM 存儲引擎
更新時間:2012年04月14日 02:55:58 作者:
mysql中用的最多存儲引擎就是innodb和myisam。做為Mysql的默認存儲引擎,myisam值得我們學習一下,以下是我對《高性能MYSQL》書中提到的myisam的理解,請大家多多指教
思維導圖

介紹
mysql中用的最多存儲引擎就是innodb和myisam。做為Mysql的默認存儲引擎,myisam值得我們學習一下,以下是我對《高性能MYSQL》書中提到的myisam的理解,請大家多多指教。
特點
> 不支持事務
證明如下:
>> 表記錄:t2表的engine是myisam。

>> 操作

注意:如果你在數(shù)據(jù)庫進行事務操作,但是事務無法成功,你就要看你的表引擎了,看這種引擎是否支持事務。
>> 下面請看innodb中的事務操作

> 存儲結構:數(shù)據(jù)文件(.MYD),索引文件(.MYI)和結構文件(.frm)
>> 特點:可以在不同服務器上拷貝數(shù)據(jù)文件和索引文件。

> 加鎖和并發(fā)
加鎖:對整張表進行加鎖,而不是行。
并發(fā):在讀數(shù)據(jù)的時候,所有的表上都可以獲得共享鎖(讀鎖),每個連接都不互相干擾。
在寫數(shù)據(jù)的時候,獲得排他鎖,會把整個表進行加鎖,而其他的連接請求(讀,寫請求)都處于等待中。
> 修復表
>> 查看表狀態(tài)

>> check一下表,看表是否正常。

>> repair(修復) 一下表。呵呵,我的這張表是正常的。

> 列索引。可以基于BLOB或TEXT類型列的前500個字符,創(chuàng)建相關索引。
>> 給t2表添加一個text列。

>> 表結構如下

>> 為content字段添加全文索引

>> 查看表的索引情況

> 延遲更新索引。MYISAM 默認把DELAY_KEY_WRITE開啟, 整個選項是MYISAM引擎獨有的。

注意:在查詢結束后,不會將索引的改變數(shù)據(jù)寫入磁盤,而是改變內存中的索引數(shù)據(jù)。只有在清理緩沖區(qū)或關閉表時才將索引塊轉儲到磁盤。
> 壓縮表
>> 查看數(shù)據(jù)文件位置

>> 壓縮文件

總結
myisam在索引層和壓縮層的卓越貢獻,所以我們經(jīng)常把myisam用于slave層,供客戶端去讀取。而myisam在寫庫操作的時候會產(chǎn)生排他鎖,如果寫操作一直占用的話,那么其他連接請求一直就處于等待中,從而造成堵塞,甚至能把服務器dang掉。
參考文件:《高性能MYSQL》
您可能感興趣的文章:
- 深入探討:MySQL數(shù)據(jù)庫MyISAM與InnoDB存儲引擎的比較
- 淺談MySQL存儲引擎選擇 InnoDB與MyISAM的優(yōu)缺點分析
- MySQL存儲引擎 InnoDB與MyISAM的區(qū)別
- MySQL存儲引擎簡介及MyISAM和InnoDB的區(qū)別
- MySQL數(shù)據(jù)庫MyISAM存儲引擎轉為Innodb的方法
- MySQL存儲引擎MyISAM與InnoDB的9點區(qū)別
- Mysql 的存儲引擎,myisam和innodb的區(qū)別
- Mysql存儲引擎InnoDB和Myisam的六大區(qū)別
- MySQL存儲引擎中的MyISAM和InnoDB區(qū)別詳解
- Mysql存儲引擎MyISAM的常見問題(表損壞、無法訪問、磁盤空間不足)
相關文章
mysql一鍵安裝教程 mysql5.1.45全自動安裝(編譯安裝)
這篇文章主要介紹了mysql一鍵安裝教程,一鍵安裝MySQL5.1.45,全自動安裝MySQL SHELL程序,實現(xiàn)編譯安裝,感興趣的2016-06-06

