MyISAM
MyISAM引擎是MySQL5.5及之前版本的默认引擎
它的特点是:
表级锁。不支持行锁,读取时对需要读到的所有表加共享锁,写入时则对表加排他锁;读写混合操作并发性不好;
不支持事务;
不支持外键;
不支持崩溃后的安全恢复;
在表有读取查询的同时,支持往表中插入新记录;
支持blob和text的前500个字符前缀索引,支持全文索引;
支持延迟更新索引,极大提升写入性能;
对于不会进行修改的表,支持压缩表,极大减少磁盘空间占用。
InnoDB
InnoDB在MySQL5.5后成为默认索引,它的特点是:
支持行锁,行级锁可以最大程度的支持并发;
采用MVCC来支持高并发;
支持事务;
支持外键;
支持崩溃后的安全恢复;
不支持全文索引。
InnoDB状态检查
show engine innodb status
总体来讲,MyISAM适合select密集型的表,InnoDB适合insert和update密集型的表。