myisam使用的是表級鎖, 而不是行級鎖。這也就意味着對錶數據進行修改時,須要對整個表進行加鎖。而在對錶中的數據進行讀取時,也須要對全部表加共享鎖。因此,使用myisam存儲引擎的表,讀取和寫入這兩種操做是互斥的。固然,在一些狀況下,當咱們對錶中的數據進行讀取時,也能夠在表的末尾插入數據。所以,myisam對讀寫混合的併發性不是很好。若是知識制度的操做的話,就併發性而言,性能仍是能夠接受的。由於共享鎖並不會阻塞共享鎖。mysql
支持對意外關閉的表進行檢查和修護操做,這裏提到的修護,並非事務恢復。由於myisam並非一種事物存儲引擎,因此它不可能提供事務恢復所須要的相關日誌。因此注意了,對myisam表作數據恢復,可能會形成數據的丟失。對有問題的表可使用sql
check table tablename 進行檢查 repair table tablename 進行修護
除了上訴命令,mysql還提供了修護工具,叫作myisamchk( 若是使用,則須要中止mysql服務)
,若是不中止使用這個工具,可能形成更大的損壞。服務器
myisam表支持全文索引,是 mysql5.7以前惟一支持全文索引的官方存儲引擎。支持text或block等字段前500個字符的前綴索引,若果myisam是一張很大的只讀表的話,在表建立完,導入數據後,就不會在對錶進行任何修改操做,那麼咱們能夠對這樣的表進行壓縮操做,這樣能夠減小磁盤io。併發
對於表中數據壓縮是獨立進行壓縮的,因此在讀取單行數據的時候,沒必要對整個表來進行解壓函數
myisampack 壓縮表
若果存儲大表則要修改 max_rows
和 avg_row_length
, 這兩個數相乘的大小,就是表達到的大小。對於大表來講,修改這兩個參數會致使表重建,可能須要一些時間。工具
myisam自己時一種非事務型存儲引擎,也就是說myisam是不支持事務的。性能
由於能夠對錶進行壓縮,壓縮後只讀。spa
在mysql5.7以前,myisam是惟一支持空間函數的存儲引擎。若是須要存儲空間類數據,使用空間函數,只能使用myisam存儲引擎。3d