myisam是isam的mysql擴展.除非修改配置,通常來講myisam是默認的存儲引擎.html
只可以進行表鎖,不支持行鎖。在進行讀取操做時不會影響到其餘用戶其餘的讀取操做,於是有比較好的併發性。可是在執行寫入操做時,會產生一個「排他鎖」,其餘用戶的的讀寫操做都沒法執行。所以若是一張表的查詢很慢,常常發生等待,可能不是由於查詢語句有問題執行比較慢,而是由於這張表同時執行了大量的寫操做。總結起來,讀操做和讀操做之間是並行的,可是寫操做和其餘操做是串行的。
mysql
在以上基礎上myisam還具備一個特性:併發插入(concurrentInsert)。該特性容許用戶在讀取一張表時,同時insert一條語句,不過update等其餘寫操做時不容許的。sql
myisam的併發插入特性是能夠控制的。能夠經過修改my.cnf文件中的concurrent_insert參數設置併發插入的級別:數據庫
concurrent_insert = 0 併發插入特性關閉安全
concurrent_insert = 1 當MyISAM存儲引擎表數據文件中不存在空洞(表中間沒有被刪除的行)時,能夠在表的末尾插入數據數據結構
concurrent_insert = 2 不管有沒有空洞,均可以在表的末尾插入數據併發
MySQL支持對myisam的自動檢查和修復
工具
用戶能夠使用check table xxx 和 repair table xxx命令實現對myisam表的檢查和修復。spa
用戶能夠使用myisamchk工具來檢查或修復myisam表,也能夠使用myisampack來壓縮myisam表,讓它們佔更少的空間。orm
myisam是不支持事務(TST)的。因此在犧牲了安全的同時,相較於事務安全的數據庫引擎,myisam更快,佔用更少的存儲空間,執行命令所須要的內存更少。
myisam的數據庫表有三個文件構成,數據結構是frm後綴的文件(frm是通用的數據結構文件),數據文件是MYD(MYData)後綴的文件,索引是MYI(MYIndex)後綴的文件。這些文件的文件名是相同的。
myisam提供全文檢索能力
myisam支持大文件,且text和blob列能夠被索引.固然不是徹底做爲索引,只有前500字節能夠做爲索引.
myisam支持optimize table命令,這是由於myisam的索引文件和數據文件是分離的。
myisam有三種存儲格式,分別是靜態,動態和已壓縮.
靜態表是myisam的默認存儲格式。當表中沒有varchar,text,blob列時會自動使用這個格式。改存儲格式的表會比較快,也比較容易恢復。
動態表是當表中有varchar,text,blob列時自動選擇的。動態存儲格式大部分時候比靜態存儲格式佔用的空間更小,可是崩潰了也比較難恢復。
已壓縮存儲格式只能經過myisampack工具創建。它佔得空間天然是最小的。
http://dev.mysql.com/doc/refman/5.1/zh/storage-engines.html#myisam-storage-engine