MyISAM表
1.不支持事務

MyISAM:對整張表進行加鎖,鎖全表而不是行。在讀數據的時候,所有的表上都可以獲得共享鎖(讀鎖),每個連接都不互相干擾。在寫的時候,或者排他鎖,會把整個表進行加鎖,而其他的連接請求(讀和寫)都處于等待。
MySQL的表級鎖有兩種模式:表共享讀鎖(Table Read Lock)和表獨占寫鎖(Table Write Lock)。MyISAM在執行查詢語句(SELECT)前,會自動給涉及的所有表加讀鎖,在執行更新操作(UPDATE、DELETE、INSERT等)前,會自動給涉及的表加寫鎖。
所以對MyISAM表進行操作,會有以下情況:
a、對MyISAM表的讀操作(加讀鎖),不會阻塞其他進程對同一表的讀請求,但會阻塞對同一表的寫請求。只有當讀鎖釋放后,才會執行其它進程的寫操作。
b、對MyISAM表的寫操作(加寫鎖),會阻塞其他進程對同一表的讀和寫操作,只有當寫鎖釋放后,才會執行其它進程的讀寫操作。
2.MyIASM的修復表
[root@MyO test]# echo "a" >> myisam_tab.MYD
mysql> check table myisam_tab;
+-----------------+-------+----------+---------------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+-----------------+-------+----------+---------------------------------------------------+
| test.myisam_tab | check | warning | Size of datafile is: 102 Should be: 100 |
| test.myisam_tab | check | error | got error: 120 when reading datafile at record: 5 |
| test.myisam_tab | check | error | Corrupt |
+-----------------+-------+----------+---------------------------------------------------+
3 rows in set (0.01 sec)
mysql> repair table myisam_tab;
+-----------------+--------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+-----------------+--------+----------+----------+
| test.myisam_tab | repair | status | OK |
+-----------------+--------+----------+----------+
1 row in set (0.01 sec)
mysql> check table myisam_tab;
+-----------------+-------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+-----------------+-------+----------+----------+
| test.myisam_tab | check | status | OK |
+-----------------+-------+----------+----------+
1 row in set (0.00 sec)
參考:http://www.cnblogs.com/baochuan/archive/2012/03/15/2398276.html